Я пытаюсь написать простой парсер, чтобы получить подробную информацию об использовании моей учетной записи в Интернете. Я успешно написал его с помощью Powershell, но мне хотелось бы перенести его на Python для простоты использования/развертывания. Если я распечатаю r.text (результат POST на странице входа), я просто снова получу данные формы страницы входа.
Я думаю, что решение может быть чем-то вроде используя готовый_запрос? Извиняюсь, если я упускаю что-то очень очевидное, прошло около 5 лет с тех пор, как я прикасался к Python ^^
import requests
USERNAME = 'usernamehere'
PASSWORD = 'passwordhere'
loginURL = 'https://myaccount.amcom.com.au/ClientLogin.aspx'
secureURL = 'https://myaccount.amcom.com.au/FibreUsageDetails.aspx'
session = requests.session()
req_headers = {'Content-Type': 'application/x-www-form-urlencoded'}
formdata = {
'ctl00$MemberToolsContent$txtUsername': USERNAME,
'ctl00$MemberToolsContent$txtPassword': PASSWORD,
'ctl00$MemberToolsContent$btnLogin' : 'Login'
}
session.get(loginURL)
r = session.post(loginURL, data=formdata, headers=req_headers, allow_redirects=False)
r2 = session.get(secureURL)
В своих попытках я ссылался на эти темы:
HTTP POST и GET с файлами cookie для аутентификации в Python
Аутентификация и запросы Python
Скрипт Powershell для справки:
$r=Invoke-WebRequest -Uri 'https://myaccount.amcom.com.au/ClientLogin.aspx' -UseDefaultCredentials -SessionVariable RequestForm
$r.Forms[0].Fields['ctl00$MemberToolsContent$txtUsername'] = "usernamehere"
$r.Forms[0].Fields['ctl00$MemberToolsContent$txtPassword'] = "passwordhere"
$r.Forms[0].Fields['ctl00$MemberToolsContent$btnLogin'] = "Login"
$response = Invoke-WebRequest -Uri 'https://myaccount.amcom.com.au/ClientLogin.aspx' -WebSession $RequestForm -Method POST -Body $r.Forms[0].Fields -ContentType 'application/x-www-form-urlencoded'
$response2 = Invoke-WebRequest -Uri 'https://myaccount.amcom.com.au/FibreUsageDetails.aspx' -WebSession $RequestForm
Подробнее здесь: https://stackoverflow.com/questions/270 ... n-requests