鍍金池/ 問答/人工智能  數(shù)據(jù)分析&挖掘  Python/ 使用CrawlSpider翻頁抓取時,如何抓取第一頁上面的內(nèi)容?

使用CrawlSpider翻頁抓取時,如何抓取第一頁上面的內(nèi)容?

我使用CrawlSpider結(jié)合下面的Rules來進(jìn)行自動翻頁,爬取豆瓣top250的電影信息:

rules = (
        Rule(LinkExtractor(restrict_xpaths='//span[@class="next"]/a'), 
        callback='parse_item', follow=True),
    )

因為我想要抓取的信息都在表層的網(wǎng)頁上,所以我不需要進(jìn)入到每一頁上的URL里面。

但是這樣問題就來了,即使callback設(shè)置了處理函數(shù),但是只有當(dāng)LinkExtractor提取第二頁鏈接并生成Response的時候才會開始調(diào)用callback函數(shù),那這樣第一頁的內(nèi)容就沒了。

網(wǎng)上搜索過一些其他方案,但是基本都是用兩個或以上的Rule(他們需要進(jìn)入到深層的URL)。如果用最基本的Spider手動寫翻頁代碼的話確實可以解決這個問題,可是能不能用CrawlerSpider解決呢,因為這樣看起來優(yōu)雅一點。

回答
編輯回答
逗婦惱

LinkExtractor這里面寫的不是正則寫的是你匹配的下一頁的url里面的東西LinkExtractor(r'/subject/d+/')

2017年3月24日 09:48
編輯回答
怣人

第一頁的內(nèi)容默認(rèn)回調(diào)函數(shù)為parse_start_url,你只需重寫這個方法即可

2017年7月19日 06:55