当前位置: 首页 > 后端技术 > Python

Python爬虫:爬虫伪装

时间:2023-03-25 20:27:39 Python

简介对于一些具有一定规模或盈利性强的网站,几乎都会采取一些反爬虫措施。堵住大门,另外一个就是在网站设置各种反爬虫机制,让虫子回来。伪装策略我们知道,即使是一些小型网站,通常也会对访问者进行身份验证,比如验证请求头,更何况是具有一定规模的网站。因此,为了让我们的爬虫能够成功爬取所需的数据信息,我们需要对爬虫进行伪装,简单来说就是让爬虫表现得像普通用户访问一样。2.1RequestHeaders问题为了演示,我用百度搜索163邮箱,用F12工具查看请求信息。在上图中,我们可以看到RequestHeaders中包含两个属性信息,Referer和User-Agent。Referer的作用是告诉服务器这个网页是从哪个页面链接过来的?User-Agent中文是用户代理,是一个特殊的字符串头,用来让服务器识别用户使用的操作系统、CPU类型、浏览器等信息。通常的处理策略是:1)添加到需要检查Referer的网站;2)为每个请求添加User-Agent。2.2IP限制有时候我们可能会长时间或者大规模爬取一些网站,爬取的时候基本不换IP。有些网站可能会监控某个IP的访问频率和访问次数。一旦超过这个阈值,就可能被认为是爬虫,从而被封禁。在这种情况下,我们需要采用间歇访问策略。通常我们在爬取的时候不会改变IP,但是有时候可能会出现一些特殊情况,我们需要长时间不间断地爬取一个网站,那么我们可能就需要使用IP代理的方式,但是这种方式一般会增加我们的费用,也就是说,它可能会花费更多的钱。小结有时我们爬取的时候,RequestHeaders什么的被伪装了,却得不到想要的结果。可能有以下几种情况:获取的信息不完整、获取的信息不相关、没有获取到信息。这种情况下,我们就需要研究一下网站的反爬机制,并进行详细的分析。常见的列举一下:1)不规则信息:URL上会有一长串不规则信息,一般用selenium解决(模拟浏览器,效率会低一些);2)动态验证码:比如根据时间和其他一些自定义规则生成。在这种情况下,我们需要找到它的规律并破解它;3)动态交互:需要和页面交互才能通过验证,selenium可以解决;4)批量异步加载:这种情况下获取的信息可能不完整,可以使用selenium解决。