Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在Scrapy中忽略已爬网的URL_Python_Django_Web Crawler_Scrapy - Fatal编程技术网

Python 如何在Scrapy中忽略已爬网的URL

Python 如何在Scrapy中忽略已爬网的URL,python,django,web-crawler,scrapy,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: ....... ........ 我想

我有一个类似这样的爬虫:

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

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

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

我想添加一个规则,其中我想忽略URL在调用函数parse2时是否已爬网,但保留parse3的规则。我仍在浏览requests.seen文件,以查看是否可以处理该文件。

请在上签出don\u filter request参数

dont_filter(布尔)–表示调度程序不应筛选此请求。当您希望多次执行相同的请求以忽略重复项筛选器时,可使用此选项。小心使用,否则你会陷入爬行循环。默认为False

可以在settings.py中设置规则。参考文件

默认值:“scrapy.dupefilter.RFPDupeFilter”

用于检测和筛选重复请求的类

默认(RFPDupeFilter)使用scrapy.utils.request.request\u指纹功能基于请求指纹进行过滤


盖伊-谢谢你的回答(都是!)。我已经从start_URL抓取了几个链接。因此,在调用parse2时,requests.seen文件中有一些URL记录。“dont_filter”在调用parse2时会起作用吗?现在它们已经被过滤了?dont_filter是每个请求的,不管URL过去是否被过滤过。