gpt4 book ai didi

scrapy - 无法爬行深度超过 1 的scrapy

转载 作者:行者123 更新时间:2023-12-01 09:33:49 25 4
gpt4 key购买 nike

我无法将scrapy配置为以深度> 1运行,我尝试了以下3个选项,但没有一个起作用,并且摘要日志中的request_depth_max始终为1:

1) 添加:

from scrapy.conf import settings
settings.overrides['DEPTH_LIMIT'] = 2

到蜘蛛文件(网站上的例子,只是不同的网站)

2) 使用 -s 运行命令行选项:
/usr/bin/scrapy crawl -s DEPTH_LIMIT=2 mininova.org

3) 添加到 settings.pyscrapy.cfg :
DEPTH_LIMIT=2

应该如何配置为大于1?

最佳答案

warwaruk 是对的, DEPTH_LIMIT 设置的默认值是 0 - 即“没有限制”。

所以让我们抓取一下 miniova 看看会发生什么。从 today 开始页面我们看到有两个tor链接:

stav@maia:~$ scrapy shell http://www.mininova.org/today
2012-08-15 12:27:57-0500 [scrapy] INFO: Scrapy 0.15.1 started (bot: scrapybot)
>>> from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor
>>> SgmlLinkExtractor(allow=['/tor/\d+']).extract_links(response)
[Link(url='http://www.mininova.org/tor/13204738', text=u'[APSKAFT-018] Apskaft presents: Musique Concrte', fragment='', nofollow=False), Link(url='http://www.mininova.org/tor/13204737', text=u'e4g020-graphite412', fragment='', nofollow=False)]

让我们抓取第一个链接,我们看到该页面上没有新的 Tor 链接,只有指向 iteself 的链接,默认情况下不会重新抓取(scrapy.http.Request(url[, ... dont_filter=False, . ..])):
>>> fetch('http://www.mininova.org/tor/13204738')
2012-08-15 12:30:11-0500 [default] DEBUG: Crawled (200) <GET http://www.mininova.org/tor/13204738> (referer: None)
>>> SgmlLinkExtractor(allow=['/tor/\d+']).extract_links(response)
[Link(url='http://www.mininova.org/tor/13204738', text=u'General information', fragment='', nofollow=False)]

运气不好,我们仍处于深度 1。让我们尝试另一个链接:
>>> fetch('http://www.mininova.org/tor/13204737')
2012-08-15 12:31:20-0500 [default] DEBUG: Crawled (200) <GET http://www.mininova.org/tor/13204737> (referer: None)
[Link(url='http://www.mininova.org/tor/13204737', text=u'General information', fragment='', nofollow=False)]

不,这个页面也只包含一个链接,一个指向自身的链接,它也被过滤了。所以实际上没有要抓取的链接,所以 Scrapy 关闭了蜘蛛(在深度==1)。

关于scrapy - 无法爬行深度超过 1 的scrapy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11959701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com