学习模拟登录,发送了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)
以下是抓取的数据,是不是我的哪里找错了?
Anda boleh terus menggunakan konteks Sesi, dan kemudian semua permintaan diselesaikan melalui contoh sesi Objek sesi akan mengendalikan kuki secara automatik untuk anda, kandungan dalam pengepala mesti ditentukan sendiri semasa membuat permintaan pertama . Struktur kod adalah kira-kira seperti berikut:
Mari kita lihat dokumen permintaan sekali lagi, nama pembolehubah a b c d menarik perhatian
Tidak
cookie
requests.get
digantikan denganf.get
Pertama sekali, anda perlu memahami prinsip amanah pelayan selepas anda log masuk
Pelayan akan menyimpan nilai sesi sebagai bukti kelayakan apabila anda log masuk, dan akan mengembalikan anda pengepala respons dengan medan Set-Cookie sebagai bukti kelayakan, jadi anda perlu menghantar permintaan dapatkan dengan kuki seperti yang anda telah log masuk masuk. Baucar
Ia seperti anda membeli tiket elektronik dalam talian Orang ramai tahu bahawa anda telah membelinya, tetapi bagaimana anda membuktikannya apabila anda memasuki tempat tersebut. Anda perlu masuk dengan tiket fizikal yang mereka berikan kepada anda selepas membeli >
Berbalik kepada senario semasa, pelayan mengetahui bahawa anda telah log masuk dan telah menyimpan sesi (bersamaan dengan menyimpan data pesanan untuk membeli tiket Pada masa ini, apabila anda menghantar permintaan dapatkan, anda perlu membuktikannya anda baru sahaja log masuk. Bahawa anda (bersamaan dengan memerlukan tiket fizikal), pada masa ini anda perlu menghantar data dalam medan Set-Cookie yang dikembalikan kepada anda oleh pelayan semasa log masuk (keluarkan tiket fizikal anda untuk membuktikan bahawa anda telah membeli tiket), dan kemudian pelayan boleh mengesahkan Identiti anda akan memberikan anda data yang sepadan (bersamaan dengan kemasukan dengan tiket)