Python爬蟲之反爬蟲---使用隨機User-Agent
阿新 • • 發佈:2020-09-19
在編寫爬蟲時,大多數情況下,需要設定請求頭。而在請求頭中,隨機更換User-Agent
可以避免觸發相應的反爬機制。
使用第三方庫fake-useragent
便可輕鬆生成隨機User-Agent
。
使用
當我們需要使用隨機User-Agent
時,只需通過ua.random
即可獲取。程式碼如下:
from fake_useragent import UserAgent ua = UserAgent() # ...... request.add_header("User-Agent",ua.random) # ......
可能出現的問題和解決方法
在使用fake-useragent
的過程中可能出現 FakeUserAgentError('Maximum amount of retries reached')錯誤,超時錯誤。在搜尋到的很多解決方法都無效,包括:
- 禁用伺服器快取:
ua = UserAgent(use_cache_server=False)
- 不快取資料:
ua = UserAgent(cache=False)
- 忽略 SSL 驗證:
ua = UserAgent(verify_ssl=False)
- 更新
fake-useragent
:pip install -U fake-useragent
解決方法
下載: https://fake-useragent.herokuapp.com/browsers/0.1.11 並另存為:fake_useragent.json
def get_header(): location = os.getcwd() + '/fake_useragent.json' ua = fake_useragent.UserAgent(path=location) return ua.random
原因
使用UserAgent時訪問了一個url,由於網路超時,造成錯誤。
現在明白了嗎?這裡免費送大家一套2020最新python入門到高階專案實戰視訊教程,可以去小編的Python交流.扣扣.裙 :巴衣久二五寺久寺二(數字的諧音)轉換下可以找到了,還可以跟行業大牛交流討教!
本文的文字及圖片來源於網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理。