1. 程式人生 > >Scrapy爬蟲(5)爬取當當網圖書暢銷榜

Scrapy爬蟲(5)爬取當當網圖書暢銷榜

The log sdn detail iss 就是 pan 微信公眾號 打開

??本次將會使用Scrapy來爬取當當網的圖書暢銷榜,其網頁截圖如下:

技術分享圖片

??我們的爬蟲將會把每本書的排名,書名,作者,出版社,價格以及評論數爬取出來,並保存為csv格式的文件。項目的具體創建就不再多講,可以參考上一篇博客,我們只需要修改items.py文件,以及新建一個爬蟲文件BookSpider.py.
??items.py文件的代碼如下,用來儲存每本書的排名,書名,作者,出版社,價格以及評論數。

import scrapy

class BookspiderItem(scrapy.Item):
    rank = scrapy.Field()
    name = scrapy.Field()
    author =
scrapy.Field() press = scrapy.Field() price = scrapy.Field() comments = scrapy.Field()

??BookSpider.py代碼如下,用來具體地爬取數據。

import scrapy
from scrapy.selector import Selector
from bookSpider.items import BookspiderItem

class bookSpider(scrapy.Spider):
    name = ‘bookScrapy‘
    start_urls =
[‘http://bang.dangdang.com/books/bestsellers/01.00.00.00.00.00-recent7-0-0-1-%d%i for i in range(1,26)] def parse(self, response): item = BookspiderItem() sel = Selector(response) book_list = response.css(‘ul.bang_list.clearfix.bang_list_mode‘).xpath(‘li‘) for book in book_list: item[‘rank‘
] = book.css(‘div.list_num‘).xpath(‘text()‘).extract_first() item[‘name‘] = book.css(‘div.name‘).xpath(‘a/text()‘).extract_first() item[‘author‘] = book.css(‘div.publisher_info‘)[0].xpath(‘a/text()‘).extract_first() item[‘press‘] = book.css(‘div.publisher_info‘)[1].xpath(‘a/text()‘).extract_first() item[‘price‘] = book.css(‘span.price_n‘).xpath(‘text()‘).extract_first() item[‘comments‘] = book.css(‘div.star‘).xpath(‘a/text()‘).extract_first() yield item

??代碼就是這麽簡單,哈哈,別忘了在settings.py中將設置“ROBOTSTXT_OBEY = False”.
??整個項目就是這樣啦,最後,我們運行命令

scrapy crawl bookScrapy -o dangdang.csv -t csv

這樣就會把剛才爬取的數據保存為dangdang.csv,該文件在spiders目錄下。

技術分享圖片

??打開dangdang.csv,其中的部分內容如下:

技術分享圖片

??我們可以發現,書的信息不是有序儲存的,但還是達到了筆者的要求,怎麽樣,是不是覺得Scrapy簡單又使用呢?強大的Scrapy!

註意:本人現已開通兩個微信公眾號: 因為Python(微信號為:python_math)以及輕松學會Python爬蟲(微信號為:easy_web_scrape), 歡迎大家關註哦~~

Scrapy爬蟲(5)爬取當當網圖書暢銷榜