[英]Python: Using requests for a webpage that redirects
更新:我確實在API中找到了我需要的信息,這並不是對這個特定問題的真正答案,而是我軟件的解決方案。
我正在嘗試登錄網頁,導航到另一個頁面並解析HTML表。
如果使用瀏覽器而不登錄就進入目標頁面,它將帶您到默認登錄頁面,並且無論如何都必須導航到目標頁面。 這就是為什么我有兩個URL調用的原因。
import requests
payload = {'username' : 'USER', 'password' : 'PASSWORD'}
with requests.Session() as s:
p = s.post('login_url', data=payload)
r = s.get('target_url')
當您導航到登錄頁面時,通常會先進入另一個頁面檢查瀏覽器,然后再進入登錄頁面本身。 我收到來自“ p”的回復:
<span data-translate="checking_browser">Checking your browser before accessing</span> website.</h1>
<p data-translate="process_is_automatic">This process is automatic. Your browser will redirect to your requested content shortly.</p>
<p data-translate="allow_5_secs">Please allow up to 5 seconds…</p>
...這只是告訴您等待重定向並登錄的頁面。是否有一種處理方法,以便它等待可以登錄的頁面? 我將需要大約每20分鍾在代碼中撥打一次電話,因此如果我可以保持登錄狀態並且僅進入目標頁面,那就更好了。
此“檢查瀏覽器”消息看起來像是CloudFlare功能,旨在阻止人們以這種方式訪問網站-您將需要從服務器運行一些javascript來克服這種障礙(這種想法是有人在訪問網站瀏覽器將自動運行javascript-如果他們使用漫游器抓取網站,它將失敗。
。 如果該站點具有API,那么切換到使用該接口將是我的第一個建議。
否則, 有一些軟件包可以幫助您解決此問題 ,但是由於壁壘明確地阻止了這種使用,因此當CloudFlare進行更改時,它們很可能會停止工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.