python - 学习模拟登录,卡在发送POST请求之后?

查看:163
本文介绍了python - 学习模拟登录,卡在发送POST请求之后?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

学习模拟登录,发送了post请求之后页面还是登录页面啊,不知道原因

import re
import requests
url='http://cer.imufe.edu.cn/authserver/login?service=http%3A%2F%2Fmy.imufe.edu.cn%2Findex.portal'
html=requests.get(url).text
lt_value=re.compile(r'name="lt" value="(.*?)"').search(html).group(1)
execution_value=re.compile(r'name="execution" value="(.*?)"').search(html).group(1)
dt={}
dt['username']='帐号'
dt['password']='密码'
dt['signIn']=''
dt['lt']=lt_value
dt['execution']=execution_value
dt['_eventId']='submit'
hd={}
hd['User-Agent']='Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36'
hd['Referer']=url
url2='http://my.imufe.edu.cn/detach.portal?.pmn=view&action=bulletinBrowser&.ia=false&.pen=pe1253&bulletinId=cf2509cf-9a54-11e6-86e2-7347af9c723b'
se=requests.session()
se.post(url,data=dt,headers=hd)
print(se.get(url2).text)

以下是抓取的数据,是不是我的哪里找错了?

解决方案

你可以直接使用Session的上下文,然后全都的请求都通过一个session实例来完成,session对象会自动帮你处理Cookie,当然header里的内容在第一次请求的时候要自己定义。代码结构大致如下:

import requests

url = ""
headers = {}
with requests.Session() as s:
    s.headers.update(headers)
    s.get(url)
    s.post(login_url)

这篇关于python - 学习模拟登录,卡在发送POST请求之后?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆