【发布时间】:2012-11-29 23:50:50
【问题描述】:
我想知道 Scrapy 是如何过滤那些爬取的 url 的?它是否存储在crawled_urls_list 之类的内容中抓取的所有 url,当它获得一个新的 url 时,它会查找列表以检查该 url 是否存在?
CrawlSpider(/path/to/scrapy/contrib/spiders/crawl.py)的这个过滤部分的代码在哪里?
非常感谢!
【问题讨论】:
标签: scrapy
我想知道 Scrapy 是如何过滤那些爬取的 url 的?它是否存储在crawled_urls_list 之类的内容中抓取的所有 url,当它获得一个新的 url 时,它会查找列表以检查该 url 是否存在?
CrawlSpider(/path/to/scrapy/contrib/spiders/crawl.py)的这个过滤部分的代码在哪里?
非常感谢!
【问题讨论】:
标签: scrapy
默认情况下,scrapy 会保留已查看请求的指纹。该列表保存在 python 集中的内存中,并在 JOBDIR 变量定义的目录中附加了一个文件调用 requests.seen。 如果您重新启动scrapy,该文件将重新加载到python集中。 控制这个的类在 scrapy.dupefilter 如果你需要不同的行为,你可以重载这个类。
【讨论】:
JOBDIR 设置定义一个作业目录,您可以在该目录下找到一个名为requests.seen 的文件。它是包含已被抓取的 URL 的文件。