写爬虫时遇到一些反爬虫--汇总

1.最最常见的就是封ip了

有条件呢,当然是买代理好,质量高,数量多;没有条件的,像我就是自己搭一个代理池,抓一些免费的高匿代理用用,因为我遇到的项目数据量要求不太大,足够使用了。给大家推荐一个代理池代理池,安装及其简便,很舒服

2.请求头

请求头有时候可能加了cookie,加了user_agent还是不返回数据,如果没有一些加密在其中的话,那么将网页中全部的请求头都添加进去会有奇效

3.登录

一些网站的数据可能非要登录才能获取,这个时候需要我们模拟登录。通过调试找到登录链接,找到需要传的参数,一般来说登录的账号密码都会加密,但是不会很复杂,我们通过参数名在全局中搜索一下,应该就能发现加密方式。

4.数据加密

  1. css使数据发生偏移
    一些网站会在关键数据上面做一些手脚,我们轻易获得返回时可能会很高兴,但是返回的数据,跟显示的相去甚远,是让人头疼的。前端工程师通过css,使数据便宜,展现出来我们所看到的数据,解决办法通常是找所需数据标签内对应值,在css找出其偏离值,通过分析偏离规律,找出解决办法。
  2. 雪碧图展示数据
    HTTP是基于TCP连接的,TCP连接的建立是需要时间和资源的。
    而下载网页所需的图片资源是通过HTTP的。如果有非常多的小图片,就需要建立很多TCP连接。
    勤劳勇敢的前端工作者们,想到把所有小图片放到一张图片里面去。这样就可以通过一次TCP链接,下载所有的小图片,再通过前端的奇技淫巧,来展示正确的图片。这种由很多小图片组成的图片,被称为雪碧图。(这段是抄的) 给大家看看雪碧图:
    雪碧图
    找出所需数值处标签内对应值,一般标签对应着长宽高像素大小,将雪碧图换成对应比例,根据像素位置找出对应字符

5.字体反爬

获取页面所用文本,使用foottool查看文本,找出其对应关系,替换即可

6.js加密

  1. js加密太多太多,只说一下,我一般的解决办法。在sourse中对我们所需数据打断点(在xhr里输入js的必经之词),若js简单,可尝试转换成python代码直接执行(需要一定js功底),若遇到大段js,需要动用execjs等工具执行js代码
  2. js混淆
    太多太难,只写一种,找到混淆js代码,如果末尾是一些表情符号,找到表情符号最近的括号,将这一段删除,换成tostring。

7.滑块验证码

  1. 过程很复杂,大致是使用selenium移动滑块,并且需要模拟出人类的运动轨迹(网上代码很多,但是极验越来越强大,很多都不好用了)
  2. 花钱,打码平台欢迎你

8.selenium

神器介绍一下,虽然慢了一些,但是省了破解js等等之烦恼

  1. selenium+浏览器 两者版本必须对应
  2. implicitly_wait()隐形等待比time.sleep()强制等待更智能
  3. 可执行 点击,输入,清除,提交,获取文本等操作,以及可以实现键盘事件(如ctrl+a全选),鼠标事件右键、双击、拖动、移动
  4. 页面存在iframe或内嵌窗口时,可通过 switch_to_frame 跳转页面

9.HOOK

还没学会

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值