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集合来去重了

    以上内容作为课堂笔记,如有雷同,请联系于我
  • 相关阅读:
    java Udp协议简单的通讯
    java 简单装饰设计模式
    java 简单的拷贝文件夹
    java 简单的文件操作
    java 简单的进水放水
    java 洗牌 发牌
    less的在线安装
    移动端缩放设置
    less.js插件监听
    less使用
  • 原文地址:https://www.cnblogs.com/ArtisticMonk/p/9741350.html
Copyright © 2011-2022 走看看