首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python爬虫也太难了,总是遇到反爬虫!带你了解那些爬虫与反爬虫策略

从功能上讲,爬虫就是采集数据,加工数据,存储数据的过程。

一般,网站会从几个方面制定反爬虫策略:用户请求、用户行为和数据加载方式。今天我们就来谈谈爬虫和反爬虫。

user-agent

这是最简单的反爬虫机制了,浏览器在发请求的时候,会附带一部分参数,这个就是http请求的header部分。如下图是谷歌浏览器的请求头,标出的是user-agent域。

网站会检查user-agent域从而限制python爬虫,所以你需要手动设置headers的user-agent域,这样就能绕过对python爬虫的限制。

IP限制

网站是通过检测用户行为,例如同一IP短时间内多次访问同一页面,或者同一账户短时间内多次进行相同操作。

针对一些可疑的IP访问,网站会禁用这个IP的爬虫。所以,一中策略是,可以通过python爬虫获得更多的公开代理IP地址,然后用这些IP地址去访问网站,每发送几个请求之后就更换新的IP地址,这样就能解决IP限制的反爬虫策略。

设置IP代理很简单,只需要设置proxies的值就好了。

访问频率限制

一些网站设置了访问时间,不能快速浏览进入下一页,这个时候我们需要修改他的访问时间,在它访问下一页的时候,通过 POST 方式,修改 read_time,正常访问的话,这个值一般会大于10如果我们修改成 60。既可以轻轻松松的通过了它的反爬虫策略。

验证码限制

针对频繁的访问或者可疑的访问请求,网站会弹出输入验证码提示框,这是比较烦人的设计。

解决的办法:识别验证码,然后在python爬虫代码中进行模拟输入。

蜜罐技术

网站会给你布下陷阱,这个陷阱是用户访问看不到的,只有爬虫才能访问到,因为这些陷阱一般隐藏在源代码之中。只要网站发现你访问了这个隐藏的陷阱,那么你就会被封禁各种能识别你身份信息的数据。那么,我们在编写爬虫的时候,就要小心蜜罐了,我们只使用python爬虫我们需要的就好了,不要贪婪的什么都要爬虫。

动态加载

很多时候我们不能直接通过url获取页面,这时就应该考虑一个工具selenium了。我们通过selenium模拟用户行为,等待网页动态加载完成后,在爬虫我们需要的数据。

cookie

网站可以通过cookie区分出浏览器的访问和爬虫的访问。在第一次访问的时候,网站返回并往cookie中写入一个数据,然后浏览器第二次尝试访问的时候,会带着cookie去访问,而网站验证了这个cookie的有效性之后,才会允许访问。这样一来,如果在python爬虫代码中,不能解析cookie的值,就无法正确访问网站。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200611A0HGIG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券