python - 如何在Scrapy中忽略已经爬取的URL

标签 python django web-crawler scrapy

我有一个看起来像这样的爬虫:

def parse:
      .......
      ........
      Yield(Request(url=nextUrl,callback=self.parse2))

def parse2:
      .......
      ........
      Yield(Request(url=nextUrl,callback=self.parse3))

def parse3:
      .......
      ........

我想添加一条规则,其中我想忽略调用函数 parse2 时 URL 是否已爬网,但保留 parse3 的规则。我仍在探索 requests.seen 文件,看看我是否可以操纵它。

最佳答案

您可以在settings.py中设置规则。请参阅文档 dupefilter-class

Default: 'scrapy.dupefilter.RFPDupeFilter'

The class used to detect and filter duplicate requests.

The default (RFPDupeFilter) filters based on request fingerprint using the scrapy.utils.request.request_fingerprint function.

关于python - 如何在Scrapy中忽略已经爬取的URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20415051/

相关文章:

python - Python 中动态表单的 Web Scraper

python - 为什么不显示 val_loss 和 val_acc?

python - 匹配来自两个不同数据帧的列值和配对观察

django - 覆盖 Boto 处理的 FileField 的 Model.save() -- Django

Django表单PUT和DELETE http方法

php - 阻止自动网页内容收集器/爬虫

python - 仅从 pyspark 中的 Spark DF 选择数字/字符串列名称

python - 使用Python从网页中Span类的样式中提取所有颜色

python - TransactionManagementError - 当 'atomic' block 处于事件状态时,这是被禁止的

java - 设置代理使用 JSOUP 失败