我使用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
解决呢,因为这样看起来优雅一点。
蝴蝶刀刀
烙印99
相关分类