美文网首页
爬虫优化

爬虫优化

作者: Fathui | 来源:发表于2018-05-07 11:55 被阅读0次

内存

pymysql浮动游标获取入口数据,防止一次性加载过量数据至内存,此时不做去重,使用set,hash,md5, 布隆过滤器等进行去重处理,分布式使用redis

class PublicMysqlByIter:
    """mysql_by_iter"""

    def __init__(self, connect_data):
        self.conn = pymysql.connect(**connect_data)
        self.cursor = self.conn.cursor(pymysql.cursors.SSCursor)

注意浮动游标在同一时间只能处理一个事件,如果使用浮动游标做查询,又需要做插入的话,需要使用其他的cursor

去重

安装redisbloom插件,可直接使用redis自带的布隆过滤器,效率比自己写的布隆过滤器高很多,内网状态,推送2万条数据4秒左右,参考(https://github.com/RedisBloom/redisbloom-py)或者直接使用execute_command

result = rds.execute_command("bf.add", boom_filter_key, dup_data)
if int(result) == 0:
    logger.info('这条数据重复了~')
    continue

从千万级mysql表中取数作为采集入口效率过低问题

设置节点(自增id),每次取少量(比如5-10万条), 采集完后保存节点, 每1-5分钟启动一次,可借助redis做队列

脚本拓展性

设置固定的大框架, 划分为入口、采集、保存等子节点,每次修改只许修改对应子节点即可

相关文章

  • Python代理IP爬虫的简单使用

    前言 Python爬虫要经历爬虫、爬虫被限制、爬虫反限制的过程。当然后续还要网页爬虫限制优化,爬虫再反限制的一系列...

  • 练习:豆瓣电影TOP250爬虫

    练习:豆瓣电影TOP250爬虫(优化)

  • 爬虫优化

    内存 pymysql浮动游标获取入口数据,防止一次性加载过量数据至内存,此时不做去重,使用set,hash,md5...

  • (十)"股票数据Scrapy爬虫"(读书笔记

    1."股票数据定向爬虫"实例介绍2."股票数据定向爬虫"实例编写3."股票数据定向爬虫"实例优化4.scrapy单...

  • 股票预测项目

    随想 新建一个git项目,关于股票预测的。包含爬虫、nlp、以及机器学习算法,每日定时运行,自动优化模型。 爬虫 ...

  • 爬虫练习2

    主要练习目标:数据的获取、反反爬虫部署、数据识别、数据解析、数据读取输出深层目标:优化反反爬虫部署、增加判断浏览器...

  • 爬虫工具集和

    爬虫,即网络爬虫,是一种自动获取网页内容的程序。是搜索引擎的重要组成部分,因此搜索引擎优化很大程度上就是针对爬虫而...

  • xiaolinBot(Twitter笑话集锦爬虫Bot) Ste

    Step2 - 代码优化 前文提要 xiaolinBot(Twitter笑话集锦爬虫Bot) Step0-概述 x...

  • Heritrix爬虫 ----(3)优化

    1 抓取任务中定制 URL 队列分配策略2 主题抓取3 增量爬虫4 Heritrix工具化 1 优化Heritri...

  • 优化爬虫初级篇

    优化爬虫初级篇 前记:之所以说是初级篇,是我现在用的爬虫最多也就是十万级数据,数据量还是不大,所以以下内容还是我实...

网友评论

      本文标题:爬虫优化

      本文链接:https://www.haomeiwen.com/subject/wzpmrftx.html