我一直在使用requests
庫來挖掘這個網站。我在10分鐘內沒有提出太多要求。說25.突然間,網站給我一個404錯誤。python請求機器人檢測?
我的問題是:我讀了一個地方,使用瀏覽器獲取URL與使用類似requests
的URL獲取URL不同。因爲requests
提取沒有獲取Cookie和其他瀏覽器會執行的操作。 requests
有沒有一個選項來模擬瀏覽器,所以服務器不認爲我是一個機器人?或者這不是一個問題?
我一直在使用requests
庫來挖掘這個網站。我在10分鐘內沒有提出太多要求。說25.突然間,網站給我一個404錯誤。python請求機器人檢測?
我的問題是:我讀了一個地方,使用瀏覽器獲取URL與使用類似requests
的URL獲取URL不同。因爲requests
提取沒有獲取Cookie和其他瀏覽器會執行的操作。 requests
有沒有一個選項來模擬瀏覽器,所以服務器不認爲我是一個機器人?或者這不是一個問題?
基本上,至少有一兩件事你可以做的就是發送User-Agent
頭:
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0'}
response = requests.get(url, headers=headers)
此外requests
,您可以通過使用selenium模擬真實用戶 - 它採用了真正的瀏覽器 - 在這種情況下,有顯然沒有簡單的方法來區分您的自動用戶和其他用戶。硒也可以使用「無頭」瀏覽器。
此外,檢查您正在抓取的網站是否提供API。如果沒有API或者您沒有使用它,請確保您知道該網站是否確實允許自動抓取網頁,請參閱Terms of use
。你知道,可能有一個原因,爲什麼他們在一段時間內請求太多後會阻止你。
另見:
你是說我必須發送一個用戶代理?不知道這個鏈接如何回答我的問題。 – jason
我希望我有時間研究一切。 – jason