Scrapy爬蟲(5)爬取當當網圖書暢銷榜
阿新 • • 發佈:2018-06-12
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)爬取當當網圖書暢銷榜