Я пытаюсь написать скрипт Python для входа на следующий сайт, чтобы автоматически отслеживать некоторые детали учетной записи: https://gateway.usps.com/eAdmin/view/signin
У меня есть правильные учетные данные, но что-то работает не совсем правильно, я не знаю, из-за скрытых входных данных, которые существуют в форме
import requests
from bs4 import BeautifulSoup
user='myusername'
passwd='mypassword'
s=requests.Session()
r=s.get("https://gateway.usps.com/eAdmin/view/signin")
soup=BeautifulSoup(r.content)
sp=soup.find("input",{"name":"_sourcePage"})['value']
fp=soup.find("input",{"name":"__fp"})['value']
si=soup.find("input",{"name":"securityId"})['value']
data={
"securityId": si,
"username":user,
"password":passwd,
"_sourcePage":sp,
"__fp":fp}
headers={"Content-Type":"application/x-www-form-urlencoded",
"Host":"gateway.usps.com",
"Origin":"https://gateway.usps.com",
"Referer":"https://gateway.usps.com/eAdmin/view/signin"}
login_url="https://gateway.usps.com/eAdmin/view/signin"
r=s.post(login_url,headers=headers,data=data,cookies=r.cookies)
print(r.content)
_sourcePage, securityId и __fp - это скрытые входные значения из источника страницы. Я удаляю это со страницы, но, очевидно, когда я получаю запрос POST, я снова открываю URL, поэтому эти значения меняются и больше не действительны. Однако я не уверен, как переписать строку POST, чтобы убедиться, что я извлекаю правильные скрытые значения для отправки.
Не думаю, что это относится только к этому сайту, но для любого сайта со скрытыми случайными значениями.