求大佬帮忙看一下这个Python脚本问题在哪里,一直无法成功post登录 255
importrequestsimportredeflogin(baseurl,username,password):#使用seesion登录,这样的好处是可以在接下来的访...
import requests
import re
def login(baseurl,username,password):
#使用seesion登录,这样的好处是可以在接下来的访问中可以保留登录信息
ses = requests.session()
# 使用requests.get获取中原工首页的内容
r = requests.get(baseurl)
# request.get().content是爬到的网页的全部内容
r_content = r.content.decode('utf-8')
# 正则表达式的匹配模式
pattern_lt = re.compile('.*?<input type="hidden" name="lt" value="(.*?)"/>.*?')
# re.findall查找所有匹配的字符串
match_lt = re.findall(pattern_lt, r_content)
lt = match_lt[0]
# 正则表达式的匹配模式
pattern_dllt = re.compile('.*?<input type="hidden" name="dllt" value="(.*?)"/>.*?')
# re.findall查找所有匹配的字符串
match_dllt = re.findall(pattern_dllt, r_content)
dllt = match_dllt[0]
# 正则表达式的匹配模式
pattern_exe = re.compile('.*?<input type="hidden" name="execution" value="(.*?)"/>.*?')
# re.findall查找所有匹配的字符串
match_exe = re.findall(pattern_exe, r_content)
execution = match_exe[0]
# post需要的表单数据,类型为字典
login_data = {
'lt': lt,
'dllt': dllt,
'execution': execution,
'_eventId': 'submit',
'rmShown': '1',
'password': password,
'username': username,
'Upgrade-Insecure-Requests': '1',
'Origin': 'http://authserver.zut.edu.cn',
'Content-Type': 'application/x-www-form-urlencoded',
'Cache-Control': 'max-age=0',
'Content-Length': '174'
}
# 设置头信息
headers_base = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Host': 'authserver.zut.edu.cn',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36',
'Referer': 'http://authserver.zut.edu.cn/authserver/login?service=http%3A%2F%2Fi.zut.edu.cn%2Flogin%3Fservice%3Dhttp%3A%2F%2Fi.zut.edu.cn%2Fnew%2Findex.html',
}
#requests 的session登录,以post方式,参数分别为url、headers、data
content = ses.post('http://authserver.zut.edu.cn/authserver/login?service=http%3A%2F%2Fi.zut.edu.cn%2Flogin%3Fservice%3Dhttp%3A%2F%2Fi.zut.edu.cn%2Fnew%2Findex.html', headers = headers_base, data = login_data)
print(content.text)
#再次使用session以get去访问中原工首页,一定要设置verify = False,否则会访问失败
ses.get("http://i.zut.edu.cn", verify = False)
jw = ses.get('http://jw.zut.edu.cn/cas_hnsf.aspx',verify = False)
print(jw.text) 展开
import re
def login(baseurl,username,password):
#使用seesion登录,这样的好处是可以在接下来的访问中可以保留登录信息
ses = requests.session()
# 使用requests.get获取中原工首页的内容
r = requests.get(baseurl)
# request.get().content是爬到的网页的全部内容
r_content = r.content.decode('utf-8')
# 正则表达式的匹配模式
pattern_lt = re.compile('.*?<input type="hidden" name="lt" value="(.*?)"/>.*?')
# re.findall查找所有匹配的字符串
match_lt = re.findall(pattern_lt, r_content)
lt = match_lt[0]
# 正则表达式的匹配模式
pattern_dllt = re.compile('.*?<input type="hidden" name="dllt" value="(.*?)"/>.*?')
# re.findall查找所有匹配的字符串
match_dllt = re.findall(pattern_dllt, r_content)
dllt = match_dllt[0]
# 正则表达式的匹配模式
pattern_exe = re.compile('.*?<input type="hidden" name="execution" value="(.*?)"/>.*?')
# re.findall查找所有匹配的字符串
match_exe = re.findall(pattern_exe, r_content)
execution = match_exe[0]
# post需要的表单数据,类型为字典
login_data = {
'lt': lt,
'dllt': dllt,
'execution': execution,
'_eventId': 'submit',
'rmShown': '1',
'password': password,
'username': username,
'Upgrade-Insecure-Requests': '1',
'Origin': 'http://authserver.zut.edu.cn',
'Content-Type': 'application/x-www-form-urlencoded',
'Cache-Control': 'max-age=0',
'Content-Length': '174'
}
# 设置头信息
headers_base = {
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'Accept-Encoding': 'gzip, deflate',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Connection': 'keep-alive',
'Host': 'authserver.zut.edu.cn',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.75 Safari/537.36',
'Referer': 'http://authserver.zut.edu.cn/authserver/login?service=http%3A%2F%2Fi.zut.edu.cn%2Flogin%3Fservice%3Dhttp%3A%2F%2Fi.zut.edu.cn%2Fnew%2Findex.html',
}
#requests 的session登录,以post方式,参数分别为url、headers、data
content = ses.post('http://authserver.zut.edu.cn/authserver/login?service=http%3A%2F%2Fi.zut.edu.cn%2Flogin%3Fservice%3Dhttp%3A%2F%2Fi.zut.edu.cn%2Fnew%2Findex.html', headers = headers_base, data = login_data)
print(content.text)
#再次使用session以get去访问中原工首页,一定要设置verify = False,否则会访问失败
ses.get("http://i.zut.edu.cn", verify = False)
jw = ses.get('http://jw.zut.edu.cn/cas_hnsf.aspx',verify = False)
print(jw.text) 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询