簡體   English   中英

使用Python請求登錄到站點

[英]Logging in to a site using Python Requests

我正在嘗試使用Python Requests庫以編程方式登錄此站點:

login_url='https://login.drexel.edu/cas/login?service=https://one.drexel.edu/c/portal/login'

login_payload = {                                                         
    'username':'lk12',                                                    
    'password':'1q2w3e4r5t6y'                                                 
}

s = requests.post(login_url, data=login_payload)    

print s.text

請注意, usernamepassword密鑰是從頁面源的用戶名和密碼id字段中檢索到的。

運行腳本並查看s.text的輸出后,盡管我的登錄憑據有效,但我似乎從未登錄過。 s.text的輸出只是登錄頁面。

使用Firefox,我檢查了cURL請求的外觀:

curl 'https://login.drexel.edu/cas/login?service=https%3A%2F%2Fone.drexel.edu%2Fc%2Fportal%2Flogin' -H 'Host: login.drexel.edu' -H 'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.10; rv:35.0) Gecko/20100101 Firefox/35.0' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' -H 'Accept-Language: en-US,en;q=0.5' --compressed -H 'Referer: https://login.drexel.edu/cas/login?service=https%3A%2F%2Fone.drexel.edu%2Fc%2Fportal%2Flogin' -H 'Cookie: JSESSIONID=B3DD2F8E144D98090AC63B995D9030AB; IDMSESSID=lk12' -H 'Connection: keep-alive' --data 'username=lk12&password=1q2w3e4r5t6y&lt=LT-745860-yMF7kyKD3SSVfeUmXPiDLWQobbczCq&execution=e2s1&_eventId=submit&submit=Connect'

該請求看起來與我的Python請求完全一樣。 不太確定我在做什么錯

有人可能會為您提供更多幫助,但是與此同時,您可以參考以下幾點:

  1. 將您的用戶代理設置為實際的瀏覽器。 如果不這樣做,則將其設置為“ Python”,並且某些(許多?)網站可以默認禁用該用戶代理。 通過將您的腳本發送到http://whatsmyuseragent.com/進行測試

如何設置用戶代理: 使用Python中的請求庫發送“用戶代理”

  1. 如果計划保留登錄會話以發出其他請求,則應使用session()

Python請求和持久會話

  1. 檢查html中的隱藏字段。 看起來有幾個。 而且您可能也必須發送這些。 看起來LT參數可能是身份驗證令牌。

如果是這樣,則需要首先獲取日志頁面,讀取內容,解析頁面以提取令牌字符串,然后將其添加到有效負載中。 注意那些是通過您的瀏覽器請求發送的。 如果您匹配所有發送的值,它應該可以工作。 (取值可能會在您請求登錄頁面的每種類型上動態生成)。

隱藏的田野

<input type="hidden" name="lt" value="LT-392592-vZcTMdl2wvqcC5WEBcW9foIIJiLoWz" />
<input type="hidden" name="execution" value="e2s1" />
<input type="hidden" name="_eventId" value="submit" />

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM