Scrapy 根据条件停止分页?

oce*_*800 1 python pagination scrapy

所以我想从有分页的网站上抓取文章。基本上,每个页面都是文章链接的列表,蜘蛛程序以某种方法跟踪页面上的链接parse_article,以及连续的下一页链接。但是,有没有办法在抓取了一定数量的文章后停止这种情况呢?例如,这是我迄今为止使用的crawlspider

rules = (

    #next page rule: 
    Rule(LinkExtractor(restrict_xpaths="//a[@class='next']"),follow=True)

    #Extract all internal links which follows this regex:
    Rule(LinkExtractor(allow=('REGEXHERE',),deny=()),callback='parse_article'),
)

def parse_article(self, response):
    #do parsing stuff here 
Run Code Online (Sandbox Code Playgroud)

当我解析完 150 篇文章后,我想停止关注下一页。即使我爬到了 150 多一点也没关系,我只是想在达到这个数字后就停止翻到下一页。有什么办法可以做到这一点吗?类似在parse_article方法中有一个计数器之类的东西吗?只是新手,scrapy所以我不确定要尝试什么....我研究了depth_limit,但我不太确定这就是我正在寻找的。

任何帮助将不胜感激,谢谢!

And*_* H. 5

您可以通过设置来实现:

CLOSESPIDER_ITEMCOUNT = 150

在您的项目设置中。

如果您的项目中有多个 Spider,并且只希望某个特定的 Spider 受此设置影响,请在custom_settings类变量中进行设置:

custom_settings = { 'CLOSESPIDER_ITEMCOUNT': 150 }
Run Code Online (Sandbox Code Playgroud)