推广 热搜:   公司  快速  中国  企业    行业  设备  上海  未来 

【道高一尺,魔高一丈】Python爬虫之如何应对网站反爬虫策略

   日期:2025-01-03     移动:http://keair.bhha.com.cn/mobile/quote/6050.html

关于应对爬虫的反爬,最近整理了一些心得,落笔成文,复盘记录下。

【道高一尺,魔高一丈】Python爬虫之如何应对网站反爬虫策略

应对反爬策略多种多样,但万变不离其宗,核心一句话就是

“爬虫越像人为操作,越不会被检测到反爬。”

2.1 模拟请求头

 

在调用的时候,随机选取一个就可以了

 

当然,你也可以使用fake_useragent(一个前人集成好的随机UA库)这个库,但有时候不好使,通常会报一个这种Error:

 

遇到这种报错不要慌,简单粗暴一点,把fake_useragent的json内容down到本地,目的是把从网站服务器获取,改为从本地获取,就可以避免timeout这种Error了。

json获取地址:https://fake-useragent.herokuapp.com/browsers/0.1.11

2.2 伪造请求cookie

发送请求的时候,request header里面,加上"cookie"这一项,伪造自己登陆了的假象。

把cookie值粘到爬虫代码

2.3 随机等待间隔

每次发送请求后,sleep随机等待时间,像这样

 

尽量不要用sleep(1)、sleep(3)这种整数时间的等待,一看就是机器。。
还是那句话,让爬虫程序表现地更像一个人

2.4 使用代理IP

使用代理IP解决反爬。(免费代理不靠谱,最好使用付费的。有按次数收费的,有按时长收费的,根据自身情况选择
是什么意思呢,就是每次发送请求,让你像从不同的地域发过来的一样,第一次我的ip地址是河北,第二次是广东,第三次是美国。。。像这样

 

这样,对端服务器就会认为你/你们是很多地域的访客,就算访问很频繁,可能也不会反爬你

2.5 验证码破解

关于验证码破解,我建议大家阅读崔庆才写的《Python3网络爬虫开发实战》

其中,第8章:验证码的识别,提到了四类验证码的破解

  • 8.1 图形验证码的识别
  • 8.2 极验滑动验证码的识别
  • 8.3 点触验证码的识别
  • 8.4 微博宫格验证码的识别

调用的超级鹰的图像识别打码方法。大致思路是

  1. 把页面弹出的验证码图片元素,截图保存到本地。
  2. 按照打码平台的图片大小要求,用PIL库进行缩放、裁剪并保存。
  3. 把处理好的图片,通过调用平台api发送给打码平台服务器,平台识别成功后返回坐标值对,利用python的selenium库依次点击相应坐标,完成验证码的自动识别。(此期间需逻辑判断,如果平台返回有误,需重新触发点击操作,直至验证成功

顺便贴一下python代码

 

路过的爬虫大佬,可以给我支个招,我感觉这个办法太笨了,有点楞~

关于爬虫这门开发技术,是否触犯法律,一直争议不断。我们作为技术人员,要时刻警醒自己,什么能爬,什么不能爬,心中要有一杆称

  1. 爬之前,花费你珍贵的10秒钟,看看目标网页的robots.txt,如果人家明确写了User-agent: * Disallow: /,再爬就是你的不对了不是。。看不懂robots语法的,请自行移步

https://developers.google.com/search/reference/robots_txt?hl=zh-cn

  1. 别爬敏感数据、隐私数据
  2. 别把数据商用,自己做数据分析,练练手就好
  3. 如果目标网站对外开放了API接口,就直接用吧,别自己写网页爬虫了。正门给你敞开了,你非要爬窗户进,咋地?职业习惯吗
  4. 别可劲儿爬、可劲儿造,收着点儿,千万别给对端服务器造成访问影响,甚至宕机

我们身为程序猿/程序媛,写代码是为了让这个世界变得更美好,一定要做遵纪守法的好公民

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助

本文地址:http://keair.bhha.com.cn/quote/6050.html    康宝晨 http://keair.bhha.com.cn/ , 查看更多

特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


相关最新动态
推荐最新动态
点击排行
网站首页  |  关于我们  |  联系方式  |  使用协议  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  粤ICP备2023022329号