如何在Python Scrapy中限制每个站点的后续页面数
发布时间:2020-12-16 21:51:26 所属栏目:Python 来源:网络整理
导读:我正在尝试构建一个可以有效地从许多网站上抓取文本信息的蜘蛛.由于我是Python用户,我被提到了Scrapy.但是,为了避免抓取大型网站,我想限制蜘蛛每个网站不超过20页的某个“深度”.这是我的蜘蛛: class DownloadSpider(CrawlSpider): name = 'downloader' dow
我正在尝试构建一个可以有效地从许多网站上抓取文本信息的蜘蛛.由于我是Python用户,我被提到了Scrapy.但是,为了避免抓取大型网站,我想限制蜘蛛每个网站不超过20页的某个“深度”.这是我的蜘蛛:
urls_file是带有url的文本文件的路径.我还在设置文件中设置了最大深度.这是我的问题:如果我设置CLOSESPIDER_PAGECOUNT异常,它会在抓取页面总数(无论哪个站点)达到异常值时关闭蜘蛛.但是,当我从每个网址上说20页时,我需要停止抓取. 最佳答案
我创建了每个类的变量,用stats = defaultdict(int)初始化它,并在parse_item中增加self.stats [response.url](或者可能是你的情况下的关键字可能是(网站,深度)) .
这就是我想象的 – 应该在理论上运作.如果您需要一个例子,请告诉我. 仅供参考,您可以在urlparse.urlparse的帮助下提取基本网址并计算深度(请参阅docs). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |