一. 关于爬虫

  • 爬虫,是一种按照一定的规则自动地抓取互联网信息的程序。它的本质是利用程序获取对我们有利的数据。

  • 反爬虫,从不是将爬虫完全杜绝;而是想办法将爬虫的访问量限制在一个可接纳的范围,不要让它过于肆无忌惮。

  • 为什么不是禁止呢?原因很简单。爬虫代码写到最后,已经和真人访问网络毫无区别。服务器的那一端完全无法判断是人还是爬虫。如果想要完全禁止爬虫,正常用户也会无法访问。所以只能想办法进行限制,而非禁止。

二. 提高爬虫效率的方法

  1. 协程。采用协程,让多个爬虫一起工作,可以大幅度提高效率。

  2. 多进程。使用CPU的多个核,使用几个核就能提高几倍。

  3. 多线程。将任务分成多个,并发(交替)的执行。

  4. 分布式爬虫。让多个设备去跑同一个项目,效率也能大幅提升。

  5. 打包技术。可以将python文件打包成可执行的exe文件,让其在后台执行即可。

  6. 其他。比如,使用网速好的网络等等。

三. 反爬虫的措施

  1. 限制请求头,即request header。解决方法:我们可以填写user-agent声明自己的身份,有时还要去填写origin和referer声明请求的来源。

  2. 限制登录,即不登录就不能访问。解决方法:我们可以使用cookies和session的知识去模拟登录。

  3. 复杂的交互,比如设置“验证码”来阻拦登录。这就比较难做,解决方法1:我们用Selenium去手动输入验证码;方法2:我们用一些图像处理的库自动识别验证码(tesserocr/pytesserart/pillow)。

  4. ip限制。如果这个IP地址,爬取网站频次太高,那么服务器就会暂时封掉来自这个IP地址的请求。 解决方法:使用time.sleep()来对爬虫的速度进行限制,建立IP代理池(你可以在网络上搜索可用的IP代理),一个IP不能用了就换一个用。

  5. 其他。

爬虫 - 提高爬虫效率的方法相关推荐

  1. Centos5.5几种提高工作效率的方法

    Centos5.5几种提高工作效率的方法 1.通常在bash下输入不必把命令输入完全,bash就能判断出用户所要输入的命令,例如假设当前的目录包含以下文件和子目录 $ls zh888/  myblog ...

  2. 有效提高工作效率的方法

    在我们的工作中最重要的不是看你付出了多少努力花了多少时间,而是看你的实际效率有多高.工作效率决定一个人的工作能力.下面小编就来为大家分享可以有效提高工作效率的方法. 1.拒绝拖延 基本上是每个人都会有 ...

  3. 提高工作效率的方法_4种提高工作效率的方法

    提高工作效率的方法 时间贫困-一种想法,就是没有足够的时间来完成我们需要做的所有工作-是感知还是现实? 事实是,您一天最多不会超过24小时. 长时间工作无济于事. 实际上,您在一天中工作的时间越长,生 ...

  4. 提高工作效率的方法有哪些

    工作效率的高低对我们的职场发展有着重要的影响,更高效率的工作可以让我们更快更好地完成任务,得到公司以及同事的认可.那么提高工作效率的方法有哪些呢? 1.有计划有总结 每天对当天需要做的任务,按照轻重缓 ...

  5. oracle 语句提高查询效率的方法

    oracle 语句提高查询效率的方法 1:.. where column in(select * from ... where ...); 2:... where exists (select 'X' ...

  6. 提高个人效率的方法和工具

    现在的社会发展的越来越快,我们也越来越追求效率.快.又快又好.又快又好又廉价,其实背后真正的原因就是"效率". 对于我个人来说,在平时的工作和学习中,我使用了很多提高效率的方法,包 ...

  7. 提高软件测试效率的方法探讨

    摘要:有位大师曾经问我,如何快速发现软件中的BUG?在当时有限时间情况下,我只说了测试者经验.熟悉需求等几个方面,显示这样的回答没能令他满意.软件测试有无银弹?有无高效的测试方法能尽快尽多发现软件中的 ...

  8. 光环国际PMP:项目经理提高工作效率的方法

    有人会问:为什么我努力善用每分每秒,却永远有做不完的事情?但为什么有的人能够日理万机,却还是精力无限?如何摆脱穷忙又毫无品质的生活? 以下5个聪明工作法,忙碌的项目经理们,请看过来. 01 每天最多做 ...

  9. PHP提高编程效率的方法

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的"函数"( ...

  10. 提高Python效率的方法 混合编程向

    题主是工科学生,研究生阶段开始真正接触编程,说白了工科学生编程无非是为了数值模拟,将不同的算法运用到工程实际中,刚开始研究生的时候,就听师兄说MATLAB牛逼啊,好用啊,Python也不错,开源啊,但 ...

最新文章

  1. 腾讯终于良心了!桌面混乱终于有救了
  2. css做html5logo,用纯css实现的html5 logo标志
  3. mysql导出停机_MySQL自动停机的问题处理实战记录
  4. 快速排序法(思想及代码实现)
  5. C# winform中一个类中如何调用另一个窗体的控件或方法
  6. 第四范式入围Forrester Wave™:预测分析与机器学习中国市场评测报告 位列领导者行列...
  7. .net core针对async ()=的安全处理
  8. c# 结构体 4字节对齐_【专题4:平时遇到的问题】 之 【3.由结构体字节对齐引发的通信故障】...
  9. 迟到的年度总结,我们应该收放自如
  10. mysql中profile的使用
  11. c语言打印字符数据在屏幕上,在屏幕上输出各种类型的数据
  12. 2009年程序员考试大纲指南
  13. matlab 并联机械臂_MATLAB机械臂的两种路径规划
  14. 革命!安装杜比声卡驱动
  15. PCI-PCIE中断机制之三
  16. 研报精选 | 2022中国消费零售行业趋势报告解读
  17. Android 11 Beta 版本发布和相关活动推迟说明
  18. android youtube webview,java - Android 6中的android webview youtube视频在全屏模式下出现问题 - 堆栈内存溢出...
  19. office2019word2019excel2019ppt2019关闭自动更新设置步骤
  20. 生理卫生课的经典对白

热门文章

  1. 7个用于开源网络情报渗透测试工作的热门OSINT工具
  2. 仿微信视频下载进度自定义View
  3. WLAN适配器故障(消失)的最快解决办法
  4. VMware虚拟网络编辑器,没有桥接模式或本地计算机不显示网络适配器
  5. 经典语录总结:识人篇
  6. 视频目标检测入门介绍
  7. 基于MATLAB综合特征的图像检索系统
  8. word如何将选择题按首字母拼音排序
  9. jquery ajax 参数放到 request playload 中
  10. iOS 5 故事板进阶(2)