我正在嘗試輸入我的用戶名、密碼并登錄到網(wǎng)站。我是初學(xué)者,也是第一次嘗試這個(gè)。我不知道我是否必須在此處包含任何其他數(shù)據(jù)。我正在嘗試的示例網(wǎng)站是:http ://testing-ground.scraping.pro/login 。我正在傳遞我的憑據(jù)并通過打印 page.content 檢查成功登錄后是否出現(xiàn)歡迎頁面的內(nèi)容。但是它顯示訪問被拒絕的內(nèi)容(當(dāng)您輸入錯(cuò)誤的憑據(jù)時(shí)出現(xiàn))。我不知道我在這里錯(cuò)在哪里。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貢獻(xiàn)1864條經(jīng)驗(yàn) 獲得超2個(gè)贊
我沒有對(duì)此進(jìn)行測試,但似乎您在請(qǐng)求中使用了錯(cuò)誤的用戶名和密碼參數(shù)名稱。快速檢查站點(diǎn)發(fā)送的請(qǐng)求顯示:
如您所見,在表單數(shù)據(jù)中,用戶名發(fā)送為usr
,密碼發(fā)送為pwd
。但是,你在構(gòu)建登錄數(shù)據(jù)的dict時(shí),使用login_data=dict(username=usr,password=pwd)
了 , 構(gòu)造了一個(gè) , 的dict {"username": usr, "password": pwd}
,與實(shí)際請(qǐng)求的要求不符。你想要的是dict(usr=usr,pwd=pwd)
.

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