zoukankan      html  css  js  c++  java
  • 爬虫去重策略:

    爬虫去重策略:

    1. 将访问过的url保存到数据库中。
      最简单的方式。即使数据库有缓存,但每次都从数据库中查询url,效率低下。

    2. 将访问过的url保存到set中,只需要o(1)的代价就可以查询url

    • 占用内存过高
    • 对小型爬虫,假设存储100000000条url数据,每条数据50个字符,Python3.x采用Unicode编码,每个字符2byte,则占用内存100000050字符2byte/1024/1024/1024 = 9.3G
    1. url经过md5等方法哈希后保存到set中
    • 将字符缩短到固定的长度,并且不会重复
    • scrapy采用的是这种方式
    1. 使用bitmap方法,将访问过的url通过hash函数映射到某一位(bit)
    • 缺点:冲突会非常高
    • 同上,存储100000000条url数据,采用bitmap方法1条数据对应1bit,则理想情况下占用内存100000000/8bit/1024/1024/ = 11.9Mb,这里不考虑冲突。
    1. 使用bloomfilter方法对bitmap进行改进,通过多重hash函数降低冲突

    列表生成式——去重

    >>> tag_list = ['x','y','z']
    >>> tag_list = [element for element in tag_list if not element.strip().endswith('y')]
    >>> tag_list
    ['x', 'z']
    >>> tags = ','.join(tag_list)
    >>> tags
    'x,z'
    >>>
    
  • 相关阅读:
    kafka其他记录
    kafka基础
    营销网络建设
    营销体制管理
    营销队伍建设
    营销组成
    Asp.net model 绑定原理
    Cannot change version of project facet Dynamic Web Module to 3.0.
    maven 编译插件
    mysql 配置文件 value
  • 原文地址:https://www.cnblogs.com/onefine/p/10499364.html
Copyright © 2011-2022 走看看