python 认识爬虫与反爬虫

参考资料:Python爬虫,你是否真的了解它?: https://www.bilibili.com/read/cv4144658

爬虫:通过计算机去获取信息,以节约人力成本,不节约的就不需要用了。

反爬虫的最终:区别计算机和人,从而达到,排除计算机的访问,允许人的访问。

最终结论:爬虫与反爬虫都是有尽头的。

                  爬虫的尽头就是极度模拟用户(自动化)。

                  反爬虫的尽头就是机器无法识别而人类可以识别的验证码。

                  所以,省事的话,不如只学一招自动化?好像也是可以,虽然就是慢了点。获取用自动化获取关键信息,然后再去并发请求。

常见的反爬虫措施:

1、访问频率

如果访问太频繁网站可能针对你的ip封锁一段时间,这和防DDoS的原理一样,对于爬虫来说,碰到这样的限制一下任务的频率就可以了,可以

让爬虫像人类频度一样访问网页,sleep个5秒10秒。

2、登录限制

公开信息的网站一般不会有这个限制,这样让用户也麻烦了。此处通过模拟登录避开,增加一个Cookies。

3、通过header封杀

增加一个header即可,可以通过faker随机生成一个请求头。

4、JavaScript脚本动态获取网站数据(升级)

有一些网站(尤其是单页面网站)的内容并不是通过服务器直接返回的,而是服务器只返回一个客户端JS程序,然后JS获取内容。更高级

的是,js在本地计算一个token,然后拿这个token来进行ajax后去内容。而本地的js又是经过代码混淆和加密的,这样会增加解析请求的难度。

不过直接模拟浏览器运行,则可以轻松破解。

5、验证码(终极武器)

验证码是专门用来区分人和计算机的手段。对于反爬来说,需要能解决验证码的问题。常见的验证码,Google的reCAPTCHA,极验。

6、ip限制

网站可能识别的ip永久封杀,这种方式需要的人力比较大,误杀用户代价很高。破解方法是使用代理池。

7、网站内容反爬

有一些网站将网站内容用只有人类可以接收的形式来呈现,比如将内容用图片的形式显示。图片识别可以使用ocr。比如:单一链接请求返回的数据

只是图片的一部分编码,需要多个url返回结果合并以后才能得到一个完整的图。

 

posted @ 2020-08-01 13:35  forxtz  阅读(355)  评论(0编辑  收藏  举报