【问题标题】:How Scrapy filters the crawled urls?Scrapy如何过滤爬取的url?
【发布时间】:2012-11-29 23:50:50
【问题描述】:

我想知道 Scrapy 是如何过滤那些爬取的 url 的?它是否存储在crawled_urls_list 之类的内容中抓取的所有 url,当它获得一个新的 url 时,它会查找列表以检查该 url 是否存在?

CrawlSpider(/path/to/scrapy/contrib/spiders/crawl.py)的这个过滤部分的代码在哪里?

非常感谢!

【问题讨论】:

    标签: scrapy


    【解决方案1】:

    默认情况下,scrapy 会保留已查看请求的指纹。该列表保存在 python 集中的内存中,并在 JOBDIR 变量定义的目录中附加了一个文件调用 requests.seen。 如果您重新启动scrapy,该文件将重新加载到python集中。 控制这个的类在 scrapy.dupefilter 如果你需要不同的行为,你可以重载这个类。

    【讨论】:

    • 非常感谢!你的回答对我大有帮助!我想做的是在爬行时暂停蜘蛛。这是其他一些也想暂停蜘蛛的人的链接:Pause your spider
    • 请问在哪里可以找到包含已被抓取的 URL 的文件?
    • @XuJiawan 请问在哪里可以找到包含被抓取的网址的文件?
    • @WilliamKinaan 如果您通过JOBDIR 设置定义一个作业目录,您可以在该目录下找到一个名为requests.seen 的文件。它是包含已被抓取的 URL 的文件。
    猜你喜欢
    • 2012-06-26
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 2019-11-14
    • 2014-08-22
    • 1970-01-01
    • 1970-01-01
    • 2021-02-10
    相关资源
    最近更新 更多