我们都知道Python用来爬数据,为了不让自家的数据被别人随意的爬走,你知道怎么反爬吗?今天播妞带着大家一起见识见识常见的反爬技术。
首先我们来看一下爬虫程序和反爬虫之间的一张逻辑图:

以下说4种网站反爬虫方式。
1.通过User-Agent来控制访问
无论是浏览器还是爬虫程序,在向服务器发起网络请求的时候,都会发过去一个头文件:headers, 表明身份。
对于爬虫程序来说,最需要注意的字段就是:User-Agent
很多网站都会建立 user-agent白名单,只有属于正常范围的user-agent才能够正常访问。
解决方法:
可以自己设置一下user-agent,或者更好的是,可以从一系列的user-agent里随机挑出一个符合标准的使用。
2.通过JS脚本来防止爬虫
举个例子:如果想爬取某个网站,在请求之前,它会有一个验证页面来验证你是否机器。
它是怎么实现的呢:
他会通过js代码生成一大段随机的数字,然后要求浏览器通过js的运算得出这一串数字的和,再返回给服务器。
解决方法:
使用PhantomJS
- PhantomJS是一个Python包,他可以在没有图形界面的情况下,完全模拟一个”浏览器“,js脚本验证什么的再也不是问题了。
3.通过IP限制来反爬虫
如果一个固定的ip在短暂的时间内,快速大量的访问一个网站,那自然会引起注意,管理员可以通过一些手段把这个ip给封了,爬虫程序自然也就做不了什么了。
解决方法:
比较成熟的方式是:IP代理池
简单的说,就是通过IP代理,从不同的IP进行访问,这样就不会被封掉IP了。
可是IP代理的获取本身就是一个很麻烦的事情,网上有免

本文介绍了Python爬虫中常见的四种反爬技术:User-Agent控制、JS验证、IP限制和robots.txt协议,并提供了相应的解决策略,如设置或随机化User-Agent、使用PhantomJS处理JS验证、通过IP代理池规避IP限制以及理解并考虑遵守robots.txt协议。
最低0.47元/天 解锁文章
1633

被折叠的 条评论
为什么被折叠?



