医院python

python 登陆asp网站的白痴问题?

#!/usr/bin/env python

import requests
from bs4 import BeautifulSoup

URL = 'http://xxx/login.aspx'
headers = {"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36"}

user = "abc"
password = "password"

s = requests.Session()
s.headers.update(headers)
r = s.get(URL)
soup = BeautifulSoup(r.content,'lxml')

#print(soup)
VIEWSTATE = soup.find(id="__VIEWSTATE")['value']
VIEWSTATEGENERATOR = soup.find(id="__VIEWSTATEGENERATOR")['value']
#EVENTVALIDATION = soup.find(id='__EVENTVALIDATION')['value']
#EVENTTARGET = soup.find(id="__EVENTTARGET")['value']
#EVENTARGUEMENT = soup.find(id="__EVENTARGUMENT")['value']

login_data = {
                "__VIEWSTATE": VIEWSTATE,
                "__VIEWSTATEGENERATOR": VIEWSTATEGENERATOR,
                "txtUser": user,
                "txtPwd": password
               }

r = s.post(URL, data=login_data, headers=headers)
print(r.text)

刚学python,对http也不熟悉。

想请教一下,这个代码最后post了登陆请求后,print(r.text) 为啥显示的还是login.aspx的内容呢,而不是登陆后跳转的页面?

参与5

1同行回答

shomer23shomer23程序猿hello
你可以看看你登录的网站是不是ajax方式提交的,如果是,网站后端可能做了ajax的判断,在header里加上'X-Requested-With':'XMLHttpRequest' 试试最近我也在学python,抓页面用的是selenium显示全部

你可以看看你登录的网站是不是ajax方式提交的,如果是,网站后端可能做了ajax的判断,在header里加上'X-Requested-With':'XMLHttpRequest' 试试
最近我也在学python,抓页面用的是selenium

收起
文化教育其它 · 2018-10-06
浏览1833

提问者

wolaos123
项目经理澳美制药
擅长领域: 数据库Db2关系型数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2018-09-30
  • 关注会员:2 人
  • 问题浏览:2158
  • 最近回答:2018-10-06
  • X社区推广