您的位置:首页 >新闻资讯

爬虫为何要设置User Agent?如何设置

来源:本站 作者:admin 时间:2019-05-08 17:21:22

很多网站都不喜欢被爬虫程序访问,但又没有办法完全禁止,于是就设置了一些反爬策略。比如User Agent,中文名为用户代理,简称UA。User Agent存放于Headers中,服务器就是通过查看Headers中的User Agent来判断是谁在访问。


爬虫为何要设置User Agent?


通过不同的浏览器访问,会有不同的User Agent,如果爬虫不设置的话,很容易被识别出来,就会被限制访问。一般的做法是收集很多不同的User Agent,然后随机使用。


那么如何设置User Agent呢,其实是有两种方法(以python为例)的:


一、在创建Request对象的时候,填入headers参数(包含User Agent信息),这个Headers参数要求为字典。


from urllib import request


if __name__=="__main__":


#以CSDN为例,CSDN不更改User Agent是无法访问的


url='http://www.csdn.net/'


head={}


#写入User Agent信息


head['User-Agent']='Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19'


#创建Request对象


req=request.Request(url, headers=head)


#传入创建好的Request对象


response=request.urlopen(req)


#读取响应信息并解码


html=response.read().decode('utf-8')


#打印信息


print(html)


二、在创建Request对象的时候不添加headers参数,在创建完成之后,使用add_header()的方法,添加headers。


from urllib import request


if __name__=="__main__":


#以CSDN为例,CSDN不更改User Agent是无法访问的


url='http://www.csdn.net/'


#创建Request对象


req=request.Request(url)


#传入headers


req.add_header('User-Agent', 'Mozilla/5.0 (Linux; Android 4.1.1; Nexus 7 Build/JRO03D) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.166  Safari/535.19')


#传入创建好的Request对象


response=request.urlopen(req)


#读取响应信息并解码


html=response.read().decode('utf-8')


#打印信息


print(html)


相关文章内容简介
推荐阅读