0

我使用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解决呢,因为这样看起来优雅一点。

2018-05-17 提问
2 个回答
1

已采纳

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

0

LinkExtractor这里面写的不是正则写的是你匹配的下一页的url里面的东西LinkExtractor(r'/subject/d+/')

撰写答案

你可能感兴趣的

推广链接