zoukankan      html  css  js  c++  java
  • 增量式爬虫

     啥是增量式爬虫?

      增量式爬虫就是爬取那些更新频率很快的网站,但是我们又不想每次都删库再建库,所以有了增量式爬虫。效果是将爬虫内容在数据库中进行判断,如果不存在则存入,存在则不存入的一个爬虫。

    我们用什么数据库?

      在这里我使用的是redis数据库,因为增量式爬虫的最主要核心就是去重,而redis中有set方法,用于去重很方便。

    判断网站中的内容是否存储过的方法?

      我将网站的内容分为两种,一种是内容少的,一种是内容多的。

      内容少的就直接将数据存储到redis数据库中,然后通过数据库的查询判断一下。

      # 创建连接对象

      conn = Redis(host='127.0.0.1',port=6379)

      # 向redis数据库里面添加内容,如果返回的是1,则没有存储过内容,将爬取的内容存到数据库,如果返回的是0,则证明存储过内容,这样直接pass

      ex = conn.sadd(key,value)

      if ex == 1:

        # 发请求,获取详情页面数据

        yield scrapy.Request(url=url,callback=slef.函数名)

      else:

        pass

      内容多的就可以通过将内容进行hashlib进行唯一加密,生成数据指纹,然后判断加密内容与数据库中的内容是否一致

      # 导包

      import hashlib

      # 自己定制一种形式的数据指纹

      source = '所有数据进行内容拼接'

      # 进行hash加密

      hashValue = hashlib.sha256(source.encode()).hexdigest()

      # 然后向数据库里面存储

      ex = conn.sadd(key,hashValue)

      # 进行判断

      if ex == 1:

        # 发请求,获取详情页面数据

        yield scrapy.Request(url=url,callback=slef.函数名)

      else:

        pass

    这样就可以完成增量式爬虫的实现过程,增量式爬虫的最主要核心就是去重,解决去重方式即可,方法很多,这里只是一种方式,但是比较简单省事。

  • 相关阅读:
    conda安装opencv opencv-contrib-python opencv-python
    在Conda下安装jupyter notebook
    安装eric环境小记
    https://paperswithcode.com/task/object-detection
    全网最全开源工业缺陷数据集汇总(已更新24个)
    caffe windows训练测试自己的图片
    caffe训练自己的图片(分类)
    caffe学习系列:训练自己的图片集(超详细教程)
    conda install pytorch torchvision torchaudio cudatoolkit=10.2 -c pytorch
    回旋曲线的计算
  • 原文地址:https://www.cnblogs.com/ifiwant/p/11756918.html
Copyright © 2011-2022 走看看