fake-useragent,python爬蟲偽裝請求頭
阿新 • • 發佈:2018-12-13
在編寫爬蟲進行網頁資料的時候,大多數情況下,需要在請求是增加請求頭,下面介紹一個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)