所以我想从一个有分页的网站上抓取文章。基本上,每个页面都是文章链接的列表,蜘蛛程序在 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
一旦我分析了 150 篇文章,我想停止关注下一页。如果我抓取了 150 多一点也没关系,我只想在达到那个数字后停止进入下一页。有什么办法吗?比如在 parse_article 方法中有一个计数器? scrapy 的新手,所以我不确定要尝试什么....我调查了depth_limit ,但我不太确定这就是我要找的东西。
任何帮助将不胜感激,谢谢!
请您参考如下方法:
您可以通过设置来实现:
CLOSESPIDER_ITEMCOUNT = 150
在您的项目设置中。
如果您的项目中有多个蜘蛛,并且只想让一个特定的蜘蛛受此设置的影响,请在 custom_settings 类变量中进行设置:
custom_settings = { 'CLOSESPIDER_ITEMCOUNT': 150 }
