关于爬虫的一些总结

对于一个爬虫脚本来说,很难具有很好的健壮性,缺乏可操作性,可能今天写出来的爬虫,说不定几个月后,甚至于几周后,就不能用了。

为什么这么说呢?

主要原因有以下几点:

  • 网站毕竟是由程序员编写出来的,给用户使用的,而网站想要更具有用户沾粘性,就必须要进行版本迭代。此时的网站,页面已经改版,接口已经更新。
  • 还有一些网站的数据具有一定的价值,这样的网站一般都会有反爬机制。既是对数据的保护,也是避免机器流量干扰到正常用户的体验。所以光是写个网络请求,几乎不可能成功拿到数据。“上有政策,下有对策”,这句话到哪都好用。

最常见的反爬手段/爬虫被封的常见原因:

  • 判断你的的请求频率/速度频繁

    • 如果你短时间内发送大量的请求,不管是谁,先封你账号或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分布地区广的代理服务器供应商,一是使用方便,二是这种供应商规模大,更值得信赖。
  • 网页相应速度
    • 什么是响应速度?简单的说就是用代理访问相关网页所需要的时间。速度越快,工作效率越高,因此代理的响应速度可视为代理服务器是否好用的一个标准。
posted @ 2020-12-23 22:42  北向。  阅读(427)  评论(0编辑  收藏  举报