2019独角兽企业重金招聘Python工程师标准>>>

1) 测试安全间隔。

测试的目的就是得到网站允许的最大访问频率是多少,确定一个合理的访问时间间隔。方法是:先使用一个较大的间隔(例如30秒)去访问网站(可以自己写程序实现,也可以借助类似iMacros的浏览器自动化插件),如果不会被屏蔽就减少间隔时间,重复上述步骤直到IP被屏蔽。假设间隔3秒正常,间隔2秒时被屏蔽了,我们就能大概估计出网站允许的最大访问频率限制为“1次/3秒”。

2) 制定控制策略。

如果我们使用“1次/大于3秒”的频率去访问网站就是安全的(当然这个频率越小越安全),根据我们的经验,大多网站使用“大于3秒”的时间间隔访问是不会触发网站的屏蔽策略(我们的建议间隔值:5秒)。

在程序中的实现方法:对于同一个IP,在下载页面之前判断与上次访问间隔的时间是否超过5秒了,如果没有就sleep,直到超过5秒才能发出下一个请求。

3) 用多线程+HTTP代理提速。

如果我们采用5秒的时间间隔意味着每分钟我们只能完成12次的访问(HTTP请求),一天也仅仅能完成不到2万次的下载(3600 * 24  / 5 = 17280)。这个速度对于小规模的网站还能接受,但对于拥有上百万甚至千万页面的网站来说,这个速度实在是太慢了。以大众点评网为例,1500万页,照这个速度需要2年零4个月才能完成,太可怕了。

而我们采集一次大众点评网仅需要15天左右,我们是怎么做到的呢? 就是通过多线程+ HTTP代理。用过HTTP代理的虫师都知道当我们通过高匿名HTTP代理发出一个请求,目标网站只能检测到HTTP代理的IP,而无法检测到源IP,也无法知道你在使用代理,对目标网站来说这个请求是来自于另外一个访客(与你无关)。假设我们拥有100个稳定高匿的HTTP代理,仍然在同IP间隔5秒的前提下,理论上每天能达到的下载量是170万!

在程序中的实现方法:开启100个线程,每个线程固定地使用一个HTTP代理,每个线程处理不同的采集任务,每个线程内控制访问网站的速度。由于数据提取是纯计算操作多线程并不能加速,12核CPU环境下,实际每天的采集量能达到100万左右(每个页面提取20个字段左右)。

转载于:https://my.oschina.net/u/1176110/blog/529188

采集时如何有效地防止被网站屏蔽IP相关推荐

  1. 网站服务器怎么屏蔽ip段,宝塔面板如何屏蔽禁止某个IP(IP段)访问

    最近查阅日志发现网站被不明人士恶意刷PV,另外还有很多垃圾搜索引擎蜘蛛疯狂的抓页面,令人很烦,查阅了一下,宝塔上面是可以屏蔽掉的. 今天我们分享下如何手动禁止掉某个 ip 的访问,这个问题挺简单的也非 ...

  2. 用python做采集时相对路径转换成绝对路径

    采集时,有时候需要采集图片,但某些网站的图片提供的相对地址,最好转换成绝对地址 在scrapy中有如下的解决策略 http://stackoverflow.com/questions/6499603/ ...

  3. 网站服务器怎么屏蔽ip段,iis屏蔽ip段,网站禁止ip访问

    有些用户恶意搞破坏疯狂访问网站,有些搜索引擎不顾网站承受能力肆无忌惮的抓取,在 robots 文件中禁止它抓取也无用.面对这种情况,也没有什么好的解决办法,只有把他们的IP屏蔽方能带来安然. iis ...

  4. 各大网站屏蔽搜索引擎抓取分析

    2019独角兽企业重金招聘Python工程师标准>>> 前面转载了一篇关于淘宝屏蔽百度的文章,但是那是其他人的看法,还是想发表一下 自己的看法,当然由于本人对屏蔽爬虫内幕了解不是很多 ...

  5. [css] 当全国哀悼日时,怎么让整个网站变成灰色呢?

    [css] 当全国哀悼日时,怎么让整个网站变成灰色呢? body{-webkit-filter: grayscale(1);filter: grayscale(1); }/* OR */body{-w ...

  6. 关于如何取消访问https时的提示:“此网站的安全证书存在问题”的解决方法

    关于如何取消访问https时的提示:"此网站的安全证书存在问题"的解决方法 参考文章: (1)关于如何取消访问https时的提示:"此网站的安全证书存在问题"的 ...

  7. 网站访客系统php,2套网站访客IP黑名单源码有效屏蔽ip(PHP实现,CC防火墙)

    网站IP黑名单2组源代码可有效阻止ip(在PHP中实现,可以用作CC防火墙),一组是单页banIP版本(支持PHP5.4或更高版本,未选择服务器环境)  ,系统未选中) 一组是整个站点的banIP版本 ...

  8. 采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET

    采集爬虫中,解决网站限制IP的问题? - wendi_0506的专栏 - 博客频道 - CSDN.NET undefined

  9. 大数据信息资料采集:中国知网文献资料网站数据信息资料爬取

    大数据信息资料采集:中国知网文献资料网站数据信息资料爬取 数据采集满足多种业务场景:适合产品.运营.销售.数据分析.政府机关.电商从业者.学术研究等多种身份职业. 舆情监控:全方位监测公开信息,抢先获 ...

最新文章

  1. 《自动化技术中的进给电气传动》1.4节读书笔记
  2. iostext添加点击事件_iOS实现一段文字中指定的某些文字点击有响应事件或者可以跳转(给字符串添加超链接)...
  3. python实例化是什么意思_Python中实例化class的执行顺序示例详解
  4. Java标识符与命名规则
  5. session实现购物车
  6. 考研数学一基础技巧题汇总
  7. python中必须使用import引入模块_Python之import方法引入模块详解
  8. linux远程访问服务器
  9. 小米立 Flag:要做年轻人的第一个深度学习框架
  10. 浮动元素横排居中显示及浏览器兼容性处理
  11. MongoDB的存储结构及对空间使用率的影响
  12. Deepin 安装CodeBlocks
  13. python实现多线程输出123123
  14. python实现excel单元格合并_Python_pandas实现excel工作表合并功能
  15. 给Mac设置定时关机、重启、睡眠
  16. Android 手把手教你实现百度身份证识别
  17. 绿幕背景视频抠图替换
  18. linux使用dd命令生成指定大小文件
  19. ACM题解——贪心专题——木头加工
  20. 会议交流 | DataFunSummit 2022:图机器学习在线峰会

热门文章

  1. 【§睡觉win7主题之热门电脑主题下载§】
  2. 谷歌开启隐身模式_Google宣布地图隐身模式和更多隐私控制
  3. python基础课程设计项目_python基础课程设计《汽车销售管理系统》
  4. 大学性开放程度为何如此?
  5. 机顶盒项目--遥控器组合键的实现
  6. 喜迎双旦 岁末狂欢丨誉天2021开年大促
  7. java cad格式文件(dwg)转svg
  8. mothur reverse.seqs 将序列反向互补
  9. 至简微博Android客户端APP开发以及源码
  10. 【spock】单测竟然可以如此丝滑