我試圖從需要登錄的網站上抓取我的資料,但我不斷收到以下錯誤:
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>MethodNotAllowed</Code><Message>The specified method is not allowed against this resource.</Message><Method>POST</Method><ResourceType>OBJECT</ResourceType><RequestId>DCVJZ8D4R3PK45M1</RequestId><HostId>PIra5vNbfC5d1TfFZ3hABXk9eIsKwtJm5bYH4Bozu4nS4InkGEILNflPPzdvT9hUpQOPaW0AZBA=</HostId></Error>
Python腳本
import requests
loginurl = ("https://cbscarrickonsuir.app.vsware.ie/")
secure_url = ("https://cbscarrickonsuir.app.vsware.ie/11571471/behaviour")
payload = {"username":"REMOVED","password":"REMOVED","source":"web"}
r = requests.post(loginurl, data=payload)
print(r.text)
必須洗掉用戶名和密碼,因為這是一個作業網站。我不知道該怎么做。我遵循了

單擊XHR“網路”選項卡部分中的鏈接并查看標頭、請求和回應以了解您應該使用的 API 端點以及方法、預期的請求正文格式和回應型別是一個好主意您將收到。
編輯:此外,您可能需要持久會話來抓取任何需要您先登錄的資料。通過這些:
- Python 請求和持久會話
- https://requests.kennethreitz.org/en/master/user/advanced/#session-objects
uj5u.com熱心網友回復:
您的代碼中有兩個錯誤。
您將資料發送到主頁,但瀏覽器發送到
https://cbscarrickonsuir.vsware.ie/tokenapiV2/login你發送資料,
FORM data但瀏覽器發送JSON data你需要的json=payload而不是data=payload
其他問題可能使您不使用Session()自動發送cookies- 所有服務器都使用cookies保留您已登錄的資訊。如果您不發送,cookies則服務器不知道您已登錄。
import requests
url = "https://cbscarrickonsuir.app.vsware.ie/"
login_url = 'https://cbscarrickonsuir.vsware.ie/tokenapiV2/login'
payload = {
"username": "none",
"password": "[email protected]",
"source":"web"
}
s = requests.Session()
r = s.post(login_url, json=payload)
print('status:', r.status_code)
print('--- text ---')
print(r.text)
print('----------------')
我沒有要登錄的帳戶,但現在它獲得401帶有訊息的狀態invalid_username_password
status: 401
--- text ---
{"fieldErrors":[],"genericErrors":[{"messageKey":"invalid_username_password","metadata":null}]}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/369470.html
