关于爬虫的一些总结
对于一个爬虫脚本来说,很难具有很好的健壮性,缺乏可操作性,可能今天写出来的爬虫,说不定几个月后,甚至于几周后,就不能用了。
为什么这么说呢?
主要原因有以下几点:
- 网站毕竟是由程序员编写出来的,给用户使用的,而网站想要更具有用户沾粘性,就必须要进行版本迭代。此时的网站,页面已经改版,接口已经更新。
- 还有一些网站的数据具有一定的价值,这样的网站一般都会有反爬机制。既是对数据的保护,也是避免机器流量干扰到正常用户的体验。所以光是写个网络请求,几乎不可能成功拿到数据。“上有政策,下有对策”,这句话到哪都好用。
最常见的反爬手段/爬虫被封的常见原因:
-
判断你的的请求频率/速度频繁
- 如果你短时间内发送大量的请求,不管是谁,先封你账号或IP,封上一段时间再说。这就很郁闷了,爬的太快被封,爬的太慢费时间。
- 而要提升抓取效率并且降低被封的风险,可以使用代理IP,说的倒是轻松,网上免费的代理IP不少,但是能用却没有几个。总不至于自费买代理吧,那不能够的。
- 快速采集是一种恶习,会对网管的服务器造成沉重的负担,还会让你陷入违法境地,也是IP被网站列入黑名单的首要原因。给你的爬虫增加延迟,让它们在夜深人静的时候运行。切记:匆匆忙忙写程序或收集数据都是拙劣项目管理的表现;应该提前做好计划,避免临阵慌乱。
-
请求头没有修改
- 有些网站会封杀任何声称自己是爬虫的访问者。如果你不确定请求头的值怎样才算合适,就用你自己的浏览器的请求头吧。
-
Cookie 不合法
- 如果你已经登录网站却不能保持登录状态,或者网站上出现了其他的“登录状态”异常,请检查你的cookie。确认在加载每个页面时cookie都被正确调用,而且你的cookie在每次发起请求时都发送到了网站上。
-
JavaScript执行问题
- 如果你从网络服务器收到的页面是空白的,缺少信息,或其遇到他不符合你预期的情况(或者不是你在浏览器上看到的内容),有可能是因为网站创建页面的JavaScript执行有问题。
-
提交参数不对
- 如果你准备向网站提交表单或发出POST请求,记得检查一下页面的内容,看看你想提交的每个字段是不是都已经填好,而且格式也正确。用Chrome浏览器的网络面板(快捷键F12打开开发者控制台,然后点击“Network”即可看到)查看发送到网站的POST命令,确认你的每个参数都是正确的。
-
IP 被识破
- 如果你在客户端遇到了HTTP错误,尤其是403禁止访问错误,这可能说明网站已经把你的IP当作机器人了,不再接受你的任何请求。你要么等待你的IP地址从网站黑名单里移除,要么就换个IP地址(可以使用代理IP,比如飞猪爬虫代理IP(这个是付费的) 或者 89免费代理)。
爬虫被封的原因有很多,建议使用爬虫要尽可能的伪装自己的数据,除了IP不能伪装外。IP也可以使用飞猪爬虫代理IP,隐藏自己的真实IP,以此来突破IP的限制。另外要尽可能的降低采集速度,不给对方服务器来带太大的影响。
为了对付反爬虫手段,想要绕开它的检测,就避免不了使用爬虫代理IP。
而如何找到高质合适的爬虫代理IP呢?
- IP 的存活时间
- 代理IP不是始终可用,它有一定存活时间,存活时间越长表示代理服务器越稳定。选择一款稳定的代理IP资源,可以减少资源浪费,节约成本,因此也作为选择代理服务器关键要求之一。
- IP 的数量和地区分布
- 尽可能选择拥有IP数量多,IP分布地区广的代理服务器供应商,一是使用方便,二是这种供应商规模大,更值得信赖。
- 网页相应速度
- 什么是响应速度?简单的说就是用代理访问相关网页所需要的时间。速度越快,工作效率越高,因此代理的响应速度可视为代理服务器是否好用的一个标准。
关于文章迁CSDN
https://blog.csdn.net/weixin_40960688