网页禁止爬虫的反爬虫机制有很多,为了操作方便,Python网络爬虫通常会伪装成用户,一般的方式就是伪装成浏览器,这是什么原因呢?

User-Agent参数,简称为UA,这个参数的功能就是用来证明本次请求载体的身份标识。假如通过浏览器发起的请求,那么这个请求的载体就是当下的浏览器,那么UA参数的值表明的就是当下浏览器的身份标识表示的一串数据。假如使用爬虫程序发起的一个请求,那么这个请求的载体为爬虫程序,那么这个请求的UA为爬虫程序的身份标识表示的一串数据。

很多网页会按照辨别请求的UA来分辨这个请求的载体是不是爬虫程序,假如是爬虫程序,那么就不会给这个请求返回响应,因此爬虫程序也没办法通过请求爬取到此网站中的数据值,这也是反爬虫的一种初级技术手段。那么为了防止类似问题的出现,我们能给爬虫程序的UA进行伪装,伪装成某个浏览器的身份标识。

在网站监测到是否是真实的浏览器访问,或是机器自动访问的时候,我们可以加上User-Agent,说明你是浏览器访问就行。

服务器会识别headers中的referer是否是它自己,要不是的话,有些服务器不容易响应,因此我们还要再headers中假如referer,以谷歌浏览器的开发者工具为例子刷新页面,在Network模块中我们点开左边name中项目,可以看到一些信息,其中我们就可以看到Referer和User-Agent的信息,把他们复制下来。

python 伪造mac python ua伪装_User

伪装的格式为:

python 伪造mac python ua伪装_IP_02

方法一:使用requests模块

python 伪造mac python ua伪装_IP_03

方法二:使用urllib模块

python 伪造mac python ua伪装_python 模拟用户点击浏览器_04

只要网络爬虫伪装变成浏览器访问,效果就好太多了,爬取也不会被阻拦,当然也是需要注意一些行为的,避免被发现。