Python 如何改变刮痕';是否重复筛选行为以仍返回项目?

Python 如何改变刮痕';是否重复筛选行为以仍返回项目?,python,duplicates,scrapy,web-crawler,Python,Duplicates,Scrapy,Web Crawler,我有以下网址: BASE-URL | FOLLOW-URL URL 1 ---> Link to URL 4 URL 2 ---> Link to URL 4 URL 3 ---> Link to URL 5 我正在按以下方式刮页: 我在BASE-URL上搜索所有内容 我调用一个新的scrapy请求来刮除FOLLOW-URL中的所有内容,以便从referer请求向现有项添加新数据。在parse_follow中,我将所有新信息添加到现有项中: yield scrapy.Requ

我有以下网址:

BASE-URL | FOLLOW-URL
URL 1 ---> Link to URL 4
URL 2 ---> Link to URL 4
URL 3 ---> Link to URL 5
我正在按以下方式刮页:

  • 我在BASE-URL上搜索所有内容
  • 我调用一个新的scrapy请求来刮除FOLLOW-URL中的所有内容,以便从referer请求向现有项添加新数据。在parse_follow中,我将所有新信息添加到现有项中:

    yield scrapy.Request(FOLLOW-URL, meta={'item' : item}, callback=self.parse_follow)
    

  • 当URL 1和URL 2指向同一个后续URL时,scrapy会检测重复项并删除其中一个。但是,当存在重复项而不是完全删除该项时,是否仍可以返回该项?

    只需将其添加到您的
    scrapy.Request
    参数
    dont_filter=True
    。很抱歉,我没有提到我已经这样做了。但它不会和刮削的性能有很大的妥协吗?我有大约40000个基本url。您是否需要生成一个包含来自以下url页面的数据的项目?如果是这样,您需要使用bij vold建议的
    dont_filter=True
    。否则,您可以考虑创建一个SET(),并向这个集合添加擦除URL。仅当跟随url不在集合中时,才生成对跟随url的请求。