Python爬蟲(15)利用Scrapy爬蟲當(dāng)當(dāng)網(wǎng)圖書暢銷榜

??本次將會(huì)使用Scrapy來爬取當(dāng)當(dāng)網(wǎng)的圖書暢銷榜,其網(wǎng)頁截圖如下:

當(dāng)當(dāng)網(wǎng)圖書暢銷榜

??我們的爬蟲將會(huì)把每本書的排名,書名,作者,出版社,價(jià)格以及評(píng)論數(shù)爬取出來,并保存為csv格式的文件。項(xiàng)目的具體創(chuàng)建就不再多講,可以參考上一篇博客,我們只需要修改items.py文件,以及新建一個(gè)爬蟲文件BookSpider.py.
??items.py文件的代碼如下,用來儲(chǔ)存每本書的排名,書名,作者,出版社,價(jià)格以及評(píng)論數(shù)。

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代碼如下,用來具體地爬取數(shù)據(jù)。

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

??代碼就是這么簡(jiǎn)單,哈哈,別忘了在settings.py中將設(shè)置“ROBOTSTXT_OBEY = False”.
??整個(gè)項(xiàng)目就是這樣啦,最后,我們運(yùn)行命令

scrapy crawl bookScrapy -o dangdang.csv -t csv

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

dangdang.csv

??打開dangdang.csv,其中的部分內(nèi)容如下:

書的信息

??我們可以發(fā)現(xiàn),書的信息不是有序儲(chǔ)存的,但還是達(dá)到了筆者的要求,怎么樣,是不是覺得Scrapy簡(jiǎn)單又使用呢?強(qiáng)大的Scrapy!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容