在aspx上登录python3.4

2024-09-28 22:30:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图登录到一个aspx页面,然后以登录用户的身份获取另一个页面的内容。在

import requests
from bs4 import BeautifulSoup

URL="https://example.com/Login.aspx"
durl="https://example.com/Daily.aspx"

user_agent = 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.124 Safari/537.36'
language = 'en-US,en;q=0.8'
encoding = 'gzip, deflate'
accept = 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8'
connection = 'keep-alive'
headers = {
    "Accept": accept,
    "Accept-Encoding": encoding,
    "Accept-Language": language,
    "Connection": connection, 
    "User-Agent": user_agent
}

username="user"
password="pass"

s=requests.Session()
s.headers.update(headers)

r=s.get(URL)
print(r.cookies)
soup=BeautifulSoup(r.content)

LASTFOCUS=soup.find(id="__LASTFOCUS")['value']
EVENTTARGET=soup.find(id="__EVENTTARGET")['value']
EVENTARGUMENT=soup.find(id="__EVENTARGUMENT")['value']
VIEWSTATEFIELDCOUNT=soup.find(id="__VIEWSTATEFIELDCOUNT")['value']
VIEWSTATE=soup.find(id="__VIEWSTATE")['value']
VIEWSTATE1=soup.find(id="__VIEWSTATE1")['value']
VIEWSTATE2=soup.find(id="__VIEWSTATE2")['value']
VIEWSTATE3=soup.find(id="__VIEWSTATE3")['value']
VIEWSTATE4=soup.find(id="__VIEWSTATE4")['value']
VIEWSTATEGENERATOR=soup.find(id="__VIEWSTATEGENERATOR")['value']

login_data={
            "__LASTFOCUS":"",
            "__EVENTTARGET":"",
            "__EVENTARGUMENT":"",
            "__VIEWSTATEFIELDCOUNT":"5",
            "__VIEWSTATE":VIEWSTATE,
            "__VIEWSTATE1":VIEWSTATE1,
            "__VIEWSTATE2":VIEWSTATE2,
            "__VIEWSTATE3":VIEWSTATE3,
            "__VIEWSTATE4":VIEWSTATE4,
            "__VIEWSTATEGENERATOR":VIEWSTATEGENERATOR,
            "__SCROLLPOSITIONX":"0",
            "__SCROLLPOSITIONY":"100",
            "ctl00$NameTextBox":"",
            "ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$UserName":username,
            "ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$Password":password,
            "ctl00$ContentPlaceHolderNavPane$LeftSection$UserLogin$LoginButton":"Login",
            "ctl00$ContentPlaceHolder1$RetrievePasswordUserNameTextBox":"",
            "hiddenInputToUpdateATBuffer_CommonToolkitScripts":"1"
}

r1=s.post(URL, data=login_data)
print (r1.cookies)

d=s.get(durl)
print (d.cookies)

dsoup=BeautifulSoup(r1.content)
print (dsoup)

但问题是cookies没有保存到会话中,我作为登录用户无法进入下一页。在

有人能给我一些建议吗。 谢谢。在


Tags: idvaluefindcookiesprintsoupbeautifulsoupaspx
1条回答
网友
1楼 · 发布于 2024-09-28 22:30:09

当您发布到登录页面时:

r1=s.post(URL, data=login_data)

它可能会发出重定向到另一个页面。因此,对POST请求的响应返回响应中的cookies,然后重定向到另一个页面。重定向是在r1中捕获的内容,不包含cookies。在

尝试相同的命令,但不允许重定向:

^{pr2}$

相关问题 更多 >