您的位置:首页 >新闻资讯 > 正文

代理IP突破反爬虫技巧分享(下)

来源:互联网 作者:admin 时间:2019-11-07 15:12:21

  之前ET代理给大家介绍了3种常见的网站反爬解决方法,接下来还有3种反爬机制的破解方法等着大家来学习,让我们马上进入到学习环节。


  4、自定义字体库反爬


  目前有些网站通过自定义字体库的方式实现反爬,主要表现在页面数据显示正常,但是页面获取到的实际数据是别的字符或者是一个编码。这种反爬需要解析网站自己的字体库,对加密字符使用字体库对应字符替换。需要制作字体和基本字体间映射关系。


  5、账号反爬


  常见的就是每次访问都需要先登录才可以正常浏览数据,这种网站数据采集就需要准备大量账号,同时需要注意每个账号最大请求次数,有的网站也会在同一个账号短时间内发起大量请求时采取封号策略,解决方式就是大量账号切换采集;每个账号发送一定量请求之后及时切换另一个账号采集。


  解决账号反爬的第一步就是模拟登陆,模拟登陆常见方式有两种:一种是用Seleniun、PhantomJS模拟登陆,这种方式实现较简单,不需要分析JS,由于很多需要登陆的网站都有对应JS参数混淆机制。另一种比较直接的方式就是逆向JS,模拟提交数据完成模拟登陆,保存Cookie数据供爬虫爬取数据用。


  Cookie代理池模块一般架构:

代理IP突破反爬虫技巧分享

  获取模块:负责生成每个账号对应的Cookie


  存储模块:存储账号及账号对应的Cookie信息,同时还需要实现一些方便存取的操作


  检测模块:定时检查Cookie,不同站点检测链接不同,检测模块拿对应Cookie去请求链接,返回状态有效则Cookie有效,否则Cookie失效并移除。


  接口模块:对外提供API调用,随机返回Cookie保证每个Cookie都能被取到,Cookie越多被取到的概率越小,从而减少被封号的风险。


  6、JS混淆动态参数反爬


  JS参数加密也是目前很多网站常会采用的一种反爬机制。最简单的方式是通过Seleniun、PhantomJS直接抓取,优点是不需要分析JS,缺点是采集效率较低。


  另一种方案是直接逆向分析JS,改写加密JS或者直接用JS执行引擎(PyV8、pyexecjs、PhantomJs)执行JS得到加密参数后直接提交参数。


  7、总结


  目前很多网站都有基本的反爬策略,常见就是验证码、JS参数加密这两种。爬取量不大优先推荐Seleniun、PhantomJS、Splash这样的工具,可以很快实现数据抓取。对数据量较大的爬取任务还是建议构造参数方式抓取,程序稳定性较高,同时效率高,尤其对目前很多前后端分离网站数据抓取更适合。


  爬虫本身会对网站增加一定的压力,所以也应该合理设定爬取速率,尽量避免对目标网站造成麻烦,影响网站正常使用,一定注意自己爬虫的姿势。


  怎么才能够愉快顺利爬虫,大家要掌握好这些突破反爬虫的技巧,将代理IP利用好,获取到自己需要的信息。


相关文章内容简介