[英]`requests` returning different results for the same script if run both locally and on the cloud
我正在嘗試向此鏈接發送請求並在 Python 腳本中獲取其 HTML 內容。 我正在使用requests
庫。 該腳本在本地運行良好,並獲得 HTML 內容。
這個腳本只是一個測試,以確保在我使用另一個腳本抓取相同的鏈接之前一切正常。 這個爬蟲會運行 2-3 天,所以我顯然想在雲上運行它。
因此,當我在 Google Cloud Platform 的 VM 實例上使用該測試腳本時,它正在獲取網站的一個特殊頁面的內容,該頁面用於被列入黑名單的 IP。 所以這意味着GCP的服務器被網站列入黑名單。 如果我以前從未使用 GCP 進行 web 抓取,如何將其列入黑名單?
我怎樣才能確保一切都按預期工作? 這是我的代碼,用於檢查 HTML 內容是針對正確頁面還是不正確頁面(黑名單頁面的正文中包含“工程師”一詞,因此我正在搜索該詞以識別頁面類型):
import requests
base = 'https://www.autotrader.com/car-values/'
headers = {} ## my headers go here. Without them, even locally, the script won't work
r = requests.get(base, headers=headers)
HTML = str(r.content)
if 'engineers' in HTML:
print('You landed on blacklisted page')
else:
print('Successful')
我還在 Streamlit Cloud 上部署了相同的腳本,但它在那里也不起作用。 所以我猜這是網站拒絕所有雲服務器的某種保護。
請幫我...
有2個原因
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.