1. 程式人生 > 實用技巧 >Python爬蟲之反爬蟲---使用隨機User-Agent

Python爬蟲之反爬蟲---使用隨機User-Agent

在編寫爬蟲時,大多數情況下,需要設定請求頭。而在請求頭中,隨機更換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')錯誤,超時錯誤。在搜尋到的很多解決方法都無效,包括:

  1. 禁用伺服器快取:ua = UserAgent(use_cache_server=False)
  2. 不快取資料:ua = UserAgent(cache=False)
  3. 忽略 SSL 驗證:ua = UserAgent(verify_ssl=False)
  4. 更新fake-useragentpip 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交流.扣扣.裙 :巴衣久二五寺久寺二(數字的諧音)轉換下可以找到了,還可以跟行業大牛交流討教!

本文的文字及圖片來源於網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯絡我們以作處理。