文档章节

为什么列表增量爬取要单线程?

无知有趣
 无知有趣
发布于 2015/07/02 17:02
字数 344
阅读 155
收藏 4

适用于对数据同步要求高,每天的增量数据不太大的情况。

1、防止漏爬,单线程时刚爬完第1页有新数据产生,在爬第2页的时候首条数据已经爬过,出现重复而已,不会丢失;多线程时比如3个线程,每页10条分别为1-10,11-20,21-30,第3页被先爬取了,此时服务器新增了一条,另一个线程刚好抓取第2页,原来的第20条数据被顶到第3页了,可第3页已经爬过了,这样就漏掉了一条数据。

2、增量停止,既然是增量爬,就得知道什么时候停止,比如根据时间、记录数等,就是得知道上次爬到哪了,如果列表没有规律那就瞎了,多线程的时候这个停止条件有一个线程达到了,其他线程得到通知的时候可能已经做了很多无用工作,重复爬了一堆页面;

3、列表并发,单线程爬时不用考虑,不能一个线程刚爬了第1页,别的线程又爬一遍;

4、请求频率,服务器可能对同一ip请求翻页的频率有限制,多线程控制起来费点劲;


© 著作权归作者所有

无知有趣
粉丝 13
博文 120
码字总数 33484
作品 0
北京
后端工程师
私信 提问
加载中

评论(3)

无知有趣
无知有趣 博主
补充一点,爬的几个网站都差点意思,5个线程就一堆的500服务器内部错
无知有趣
无知有趣 博主

引用来自“若水191”的评论

写了这么多,就是说服自己不用多线程

你懂我0
若水191
若水191
写了这么多,就是说服自己不用多线程
手把手教你写网络爬虫(2):迷你爬虫架构

原文出处:拓海 介绍 大家好!回顾上一期,我们在介绍了爬虫的基本概念之后,就利用各种工具横冲直撞的完成了一个小爬虫,目的就是猛、糙、快,方便初学者上手,建立信心。对于有一定基础的读...

拓海
2018/04/27
0
0
python生成器

python生成器 为什么用生成器? 列表生成式: 使代码更简洁、还可以执行一个函数; [i*2 for i in range(10)] 生成 :[0,2,4,6,8,12,14,16,18] [i*2 for i in range(10)] 相当于以下三句代码...

506554897
2017/09/08
0
0
Python多线程爬图&Scrapy框架爬图

一、背景 对于日常Python爬虫由于效率问题,本次测试使用多线程和Scrapy框架来实现抓取斗图来表情。 由于IO操作不使用CPU,对于IO密集(磁盘IO/网络IO/人家交互IO)型适合用多线程,对于计算...

KaliArch
2018/08/21
0
0
爬虫性能:NodeJs VS Python

前言 早就听说Nodejs的异步策略是多么的好,I/O是多么的牛逼......反正就是各种好。今天我就准备给nodejs和python来做个比较。能体现异步策略和I/O优势的项目,我觉得莫过于爬虫了。那么就以...

黑魔法
2016/08/29
62
0
现学现用:追女朋友必不可少的Python技能

编者有言:多喝热水太敷衍,日常坚持不断的嘘寒问暖反而显得温馨。程序员怎么用自己最擅长的事追到女神?本文将给你一些实用建议。 上班的日子总是3点一线——家里,公司和上班的路径,对于我...

朝十晚八
2018/12/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

代理模式之JDK动态代理 — “JDK Dynamic Proxy“

动态代理的原理是什么? 所谓的动态代理,他是一个代理机制,代理机制可以看作是对调用目标的一个包装,这样我们对目标代码的调用不是直接发生的,而是通过代理完成,通过代理可以有效的让调...

code-ortaerc
今天
5
0
学习记录(day05-标签操作、属性绑定、语句控制、数据绑定、事件绑定、案例用户登录)

[TOC] 1.1.1标签操作v-text&v-html v-text:会把data中绑定的数据值原样输出。 v-html:会把data中值输出,且会自动解析html代码 <!--可以将指定的内容显示到标签体中--><标签 v-text=""></......

庭前云落
今天
8
0
VMware vSphere的两种RDM磁盘

在VMware vSphere vCenter中创建虚拟机时,可以添加一种叫RDM的磁盘。 RDM - Raw Device Mapping,原始设备映射,那么,RDM磁盘是不是就可以称作为“原始设备映射磁盘”呢?这也是一种可以热...

大别阿郎
今天
12
0
【AngularJS学习笔记】02 小杂烩及学习总结

本文转载于:专业的前端网站☞【AngularJS学习笔记】02 小杂烩及学习总结 表格示例 <div ng-app="myApp" ng-controller="customersCtrl"> <table> <tr ng-repeat="x in names | orderBy ......

前端老手
昨天
16
0
Linux 内核的五大创新

在科技行业,创新这个词几乎和革命一样到处泛滥,所以很难将那些夸张的东西与真正令人振奋的东西区分开来。Linux内核被称为创新,但它又被称为现代计算中最大的奇迹,一个微观世界中的庞然大...

阮鹏
昨天
20
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部