fake-useragent,python爬虫伪装请求头
在编写爬虫进行网页数据的时候,大多数情况下,需要在请求是增加请求头,下面介绍一个python下非常好用的伪装请求头的库:fake-useragent,具体使用说明如下:
1.在scrapy中的使用
第一步
pip install fake-useragent
第二步:在middlewares中配置下载中间件。
class RandomUserAgentMiddleware(object): #随机更换user_agent def __init__(self, crawler): super(RandomUserAgentMiddleware,self).__init__() self.ua = UserAgent() self.ua_type = crawler.settings.get("RANDOM_UA_TYPE","random")#为了随机获得浏览器类型 @classmethod def from_crawler(cls, crawler): return cls(crawler)#导入crawler,从而获取其他的配置文件里的数据 def process_request(self,request,spider): def get_ua(): return getattr(self.ua,self.ua_type)#获取ua的ua_type属性,也就是获得random request.headers.setdefault('User-Agent',get_ua())
第三步:在settings中配置
RANDOM_UA_TYPE = "random" USER_AGENT ='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36'
DEFAULT_REQUEST_HEADERS = { 'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'en', 'User-Agent':USER_AGENT, }
2不是在scrapy中的使用
pip install fake-useragent
获取各浏览器的fake-useragent
from fake_useragent import UserAgent ua = UserAgent() #ie浏览器的user agent print(ua.ie) #opera浏览器 print(ua.opera) #chrome浏览器 print(ua.chrome) #firefox浏览器 print(ua.firefox) #safri浏览器 print(ua.safari) #最常用的方式 #写爬虫最实用的是可以随意变换headers,一定要有随机性。支持随机生成请求头 print(ua.random) print(ua.random) print(ua.random)
示例代码
from fake_useragent import UserAgent import requests ua=UserAgent() #请求的网址 url="https://www.baidu.com" #请求头 headers={"User-Agent":ua.random} #请求网址 response=requests.get(url=url,headers=headers) #响应体内容 print(response.text) #响应状态信息 print(response.status_code) #响应头信息 print(response.headers)