zoukankan      html  css  js  c++  java
  • scrapy的去重机制

    scrapy是通过hashlib算法转成长度一致的url,然后再通过set集合去重的,有兴趣看源码

    去重的中间件在scrapy 的 dupefilters.py文件中:

    -->  #去重器

    RFDupeFilter()

    -->有个函数叫

    request_seen()
    #被scrapy/core/scheduler.py调用

    这个是调度器

    scheduler.py#文件中有个函数叫enqueue_request()的函数
    每来一个url就是通过这个函数来执行的

    每次执行之前都会调用到    request_seen(request)   这个方法

    这个方法就会生成一个指纹,指纹下面的掉用的就比较复杂了,简单的说就是要去执行       hashlib.sha1()       这个算法来生成一个固定长度的哈兮值

    再然后就是在那个去重器中的

    self.fingerprints = set() 

    就是通过上句代码执行了set集合来去重了

    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    chess「dp」
    e[树上主席树]
    d[贪心]
    神盐皇
    LA 8043. ACM-ICPC World Finals 2017 E. Need for Speed
    八数码问题
    UVa 679. Dropping Balls
    关于时间复杂度
    欧拉序列 (Euler Tour)
    莫队算法
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/9741350.html
Copyright © 2011-2022 走看看