学习模拟登录,发送了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)
以下是抓取的数据,是不是我的哪里找错了?
Vous pouvez utiliser directement le contexte de session, puis toutes les demandes sont complétées via une instance de session. L'objet de session gérera automatiquement les cookies pour vous. Bien entendu, le contenu de l'en-tête doit être défini par vous-même lors de la première demande. . La structure du code est à peu près la suivante :
Regardons à nouveau le document des requêtes, les noms des variables a b c d sont accrocheurs
Non
cookie
requests.get
remplacé parf.get
Tout d'abord, vous devez comprendre le principe de confiance du serveur après vous être connecté
Le serveur enregistrera une valeur de session comme identifiant lorsque vous vous connecterez et vous renverra un en-tête de réponse avec un champ Set-Cookie comme identifiant, vous devez donc envoyer une demande d'obtention avec le cookie lorsque vous vous êtes connecté dans. Bon
C'est comme si vous aviez acheté un billet électronique en ligne. Les gens savent que vous l'avez acheté, mais comment prouver qu'il s'agit bien de vous lorsque vous entrez dans la salle. Vous devez entrer avec le billet physique qu'ils vous ont donné après l'achat. >
Retour au scénario actuel, le serveur sait que vous êtes connecté et a enregistré la session (ce qui équivaut à enregistrer les données de commande pour l'achat de billets. À ce moment-là, lorsque vous envoyez une demande d'obtention, vous devez le prouver). vous venez de vous connecter. Que vous (équivalent à avoir besoin d'un ticket physique), vous devez à ce moment envoyer les données dans le champ Set-Cookie qui vous ont été renvoyées par le serveur lors de la connexion (retirez votre ticket physique pour prouver que vous avez acheté le billet), puis le serveur pourra confirmer. Votre identité vous donnera les données correspondantes (équivalent à une entrée avec un billet)