我是Python新手。所以请不要生气,如果我的问题太粗糙,我的英语不好T.T我想从基于ASP的公司CMS的管理页面中抓取数据。我在网上看了很多关于BeautifulSoup和Request Module的内容。但这对我没有用。你能给我一些帮助/提示吗?提前致谢。
登录网址为:
和我的代码:
#import libraries
import csv
import requests
from bs4 import BeautifulSoup
URL="http://thuvientulap.org/login.aspx"
username="user"
password="password"
s=requests.Session()
r=s.get(URL)
soup=BeautifulSoup(r.content,'html.parser')
VIEWSTATE=soup.find(id="__VIEWSTATE")['value']
EVENTVALIDATION=soup.find(id="__EVENTVALIDATION")['value']
VIEWSTATEGENERATOR=soup.find(id="__VIEWSTATEGENERATOR")['value']
login_data={"__VIEWSTATE":VIEWSTATE,
"txt_name_login":username,
"txt_password_ogin":password,
"__VIEWSTATE":VIEWSTATE,
"__EVENTVALIDATION":EVENTVALIDATION,
"__VIEWSTATEGENERATORT":VIEWSTATEGENERATOR,
}
r = s.post(URL, data=login_data)
admin_url =("http://thuvientulap.org/admin.aspx")
r = s.get(admin_url)
print (r.url)
print (r.text)
答案 0 :(得分:0)
您没有传递任何标题:
import requests
s=requests.Session()
url ="http://thuvientulap.org/login.aspx"
r=s.get(url)
dct=s.cookies.get_dict()#you will get a ASP.net cookie pass it in header
along with other headers
aid=dct["ASP.NET_SessionId"]
head = {ASP.NET_SessionId=aid,.....}
r = s.post(url, data=login_data,headers=head)
获取有关您必须传递哪些特定标头以及POST
所需的所有参数的信息