在线客服
扫描二维码
下载博学谷APP扫描二维码
关注博学谷微信公众号
反爬技术解决方案有哪些?常见的反爬措施分享:反爬技术Headers、IP限制、UA限制、验证码反爬虫或者模拟登陆、Ajax动态加载、cookie限制的相关介绍。
一、反爬技术Headers:
从用户的Headers进行反爬是最常见的反爬虫策略。Headers(上一讲中已经提及)是一种区分浏览器行为和机器行为中最简单的方法,还有一些网站会对Referer(上级链接)进行检测(机器行为不太可能通过链接跳转实现)从而实现爬虫。
相应的解决措施:通过审查元素或者开发者工具获取相应的Headers然后把相应的Headers传输给python的requests,这样就能很好地绕过。
二、反爬技术IP限制
一些网站会根据你的IP地址访问的频率,次数进行反爬。也就是说如果你用单一的IP地址访问频率过高,那么服务器会在短时间内禁止这个IP访问。
解决措施:构造自己的IP代理池,然后每次访问时随机选择代理(但一些IP地址不是非常稳定,需要经常检查更新)。
三、反爬技术UA限制
UA是用户访问网站时候的浏览器标识,其反爬机制与ip限制类似。
解决措施:构造自己的UA池,每次python做requests访问时随机挂上UA标识,更好地模拟浏览器行为。当然如果反爬对时间还有限制的话,可以在requests设置timeout最好是随机休眠,这样会更安全稳定,time.sleep()。
四、反爬技术验证码反爬虫或者模拟登陆
验证码:这个办法也是相当古老并且相当的有效果,如果一个爬虫要解释一个验证码中的内容,这在以前通过简单的图像识别是可以完成的,但是就现在来讲,验证码的干扰线,噪点都很多,甚至还出现了人类都难以认识的验证码(~~~~~~~)。
相应的解决措施:验证码识别的基本方法:截图,二值化、中值滤波去噪、分割、紧缩重排(让高矮统一)、字库特征匹配识别。(python的PIL库或者其他)模拟登陆(例如知乎等):用好pythonrequests中的session(下面几行代码实现了最简单的163邮箱的登陆,其实原理是类似的~~)。
import requests
s =requests.session()
login_data={"account":" ","password":" "}
res=s.post("http://mail.163.com/",login_data)
五、反爬技术Ajax动态加载
网页的不希望被爬虫拿到的数据使用Ajax动态加载,这样就为爬虫造成了绝大的麻烦,如果一个爬虫不具备js引擎,或者具备js引擎,但是没有处理js返回的方案,或者是具备了js引擎,但是没办法让站点显示启用脚本设置。基于这些情况,ajax动态加载反制爬虫还是相当有效的。
Ajax动态加载的工作原理是:从网页的url加载网页的源代码之后,会在浏览器里执行JavaScript程序。这些程序会加载出更多的内容,并把这些内容传输到网页中。这就是为什么有些网页直接爬它的URL时却没有数据的原因。
处理方法:若使用审查元素分析”请求“对应的链接(方法:右键→审查元素→Network→清空,点击”加载更多“,出现对应的GET链接寻找Type为text/html的,点击,查看get参数或者复制RequestURL),循环过程。如果“请求”之前有页面,依据上一步的网址进行分析推导第1页。以此类推,抓取抓Ajax地址的数据。对返回的json使用requests中的json进行解析,使用eval()转成字典处理(上一讲中的fiddler可以格式化输出json数据。
六、反爬技术cookie限制
一次打开网页会生成一个随机cookie,如果再次打开网页这个cookie不存在,那么再次设置,第三次打开仍然不存在,这就非常有可能是爬虫在工作了。
解决措施:在Headers挂上相应的cookie或者根据其方法进行构造(例如从中选取几个字母进行构造)。如果过于复杂,可以考虑使用selenium模块(可以完全模拟浏览器行为)。
— 申请免费试学名额 —
在职想转行提升,担心学不会?根据个人情况规划学习路线,闯关式自适应学习模式保证学习效果
讲师一对一辅导,在线答疑解惑,指导就业!
相关推荐 更多
python网络爬虫培训班怎么样
python网络爬虫培训班怎么样?能学到东西吗?很多想转型做python开的的比较适合选择专业的python网络爬虫培训班,这样可以系统的学习专业知识,比较好的python培训班还有相关的项目实战项目,比如博学谷的Python+人工智能在线就业班,学习完可以掌握服务器端程序开发、web系统设计与开发、爬虫系统、数据分析、数据挖掘、机器学习、图像识别、深度学习等技术知识。
8149
2019-06-24 16:25:46
零基础学Python爬虫需要多久才能掌握?
爬虫又称网络蜘蛛,作为一种自动采集数据的手段,目前被广泛应用于互联网领域。它的实用性也引来许多人的学习兴趣,那么零基础学python爬虫需要多久才能掌握?以博学谷推出的Python爬虫课程为例,视频课程主要分为六大板块,相信快的话只要一周,零基础的同学也能快速掌握Python爬虫。那么如何才能掌握Python网络爬虫技术?下面为你细致讲述。
10945
2019-07-24 15:18:42
为什么大家都学Python编程?学Python开发优势
在招聘网站上不难发现很多公司的招聘信息,某些岗位招聘要求有Python编程经验优先。近年国家政策大力扶持,python进入学校的课堂,各大高校相继开设人工智能专业;学python编程可以高效解决工作中遇到的问题,提高工作效率。
5618
2020-02-07 15:46:32
爬虫应用场景的利弊分析
相信大家在春节的时候都有过抢火车票的经历,对一些抢票软件一定不会感到陌生。今天我们就来从技术的角度,来看看抢票软件背后的东西——爬虫。通俗点说,爬虫就是模拟人的行为去各个网站溜达,并把看到的信息背回来的探测机器。如今随着网络和大数据的发展,爬虫的应用场景变得越来越广泛,下面我们就一起来分析一下爬虫应用场景的利弊吧!
8365
2020-04-15 10:51:25
Python bs4怎么安装?
bs4是BeautifulSoup4的简称,它是一个可以从HTML中提取数据的Python第三方库。具体来讲,bs4可以从茫茫的HTML代码中准确查找出你想要的内容,甚至一个小小的字符串。听起来是不是感觉bs4很厉害的样子?那么,Python bs4怎么安装呢?下面小编带领大家一步步的实现安装与导入的过程。
6907
2020-08-07 09:54:41