我正在嘗試輸入我的用戶名、密碼并登錄到網站。我是初學者,也是第一次嘗試這個。我不知道我是否必須在此處包含任何其他數據。我正在嘗試的示例網站是:http ://testing-ground.scraping.pro/login 。我正在傳遞我的憑據并通過打印 page.content 檢查成功登錄后是否出現歡迎頁面的內容。但是它顯示訪問被拒絕的內容(當您輸入錯誤的憑據時出現)。我不知道我在這里錯在哪里。import requestswith HTMLSession() as c: url='http://testing-ground.scraping.pro/login?mode=login' usr='admin' pwd='12345' c.get(url) login_data=dict(username=usr,password=pwd) c.post(url,data=login_data) page=c.get('http://testing-ground.scraping.pro/login?mode=welcome') print(page.content)
2 回答

慕斯王
TA貢獻1864條經驗 獲得超2個贊
我沒有對此進行測試,但似乎您在請求中使用了錯誤的用戶名和密碼參數名稱。快速檢查站點發送的請求顯示:
如您所見,在表單數據中,用戶名發送為usr
,密碼發送為pwd
。但是,你在構建登錄數據的dict時,使用login_data=dict(username=usr,password=pwd)
了 , 構造了一個 , 的dict {"username": usr, "password": pwd}
,與實際請求的要求不符。你想要的是dict(usr=usr,pwd=pwd)
.

犯罪嫌疑人X
TA貢獻2080條經驗 獲得超4個贊
查看<form>
頁面源代碼中的標記?;蛘吣梢詸z查網絡選項卡以獲取每個字段的名稱值的發布請求。正確的字段名稱是usr和pwd。
所以基本上改變這行代碼:
login_data=dict(username=usr,password=pwd)
到
login_data=dict(usr=usr,pwd=pwd)
添加回答
舉報
0/150
提交
取消