使用CrawlSpider翻页抓取时,如何抓取第一页上面的内容?

我使用CrawlSpider结合下面的Rules来进行自动翻页,爬取豆瓣top250的电影信息:

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

因为我想要抓取的信息都在表层的网页上,所以我不需要进入到每一页上的URL里面。

但是这样问题就来了,即使callback设置了处理函数,但是只有当LinkExtractor提取第二页链接并生成Response的时候才会开始调用callback函数,那这样第一页的内容就没了。

网上搜索过一些其他方案,但是基本都是用两个或以上的Rule(他们需要进入到深层的URL)。如果用最基本的Spider手动写翻页代码的话确实可以解决这个问题,可是能不能用CrawlerSpider解决呢,因为这样看起来优雅一点。

Qyouu
浏览 951回答 2
2回答

蝴蝶刀刀

第一页的内容默认回调函数为parse_start_url,你只需重写这个方法即可

烙印99

LinkExtractor这里面写的不是正则写的是你匹配的下一页的url里面的东西LinkExtractor(r'/subject/d+/')
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python