[英]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
請注意, username
和password
密鑰是從頁面源的用戶名和密碼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-745860-yMF7kyKD3SSVfeUmXPiDLWQobbczCq&execution=e2s1&_eventId=submit&submit=Connect'
該請求看起來與我的Python請求完全一樣。 不太確定我在做什么錯
有人可能會為您提供更多幫助,但是與此同時,您可以參考以下幾點:
如何設置用戶代理: 使用Python中的請求庫發送“用戶代理”
如果是這樣,則需要首先獲取日志頁面,讀取內容,解析頁面以提取令牌字符串,然后將其添加到有效負載中。 注意那些是通過您的瀏覽器請求發送的。 如果您匹配所有發送的值,它應該可以工作。 (取值可能會在您請求登錄頁面的每種類型上動態生成)。
隱藏的田野
<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.