python requests模擬登陸正方教務管理系統,並爬取成績


最近模擬帶賬號登陸,查看了一些他人的博客,發現正方教務已經更新了,所以只能自己探索了。

登陸:

  通過抓包,發現需要提交的值

       

需要值lt,這是個啥,其實他在訪問登陸頁面時就產生了

       

session=requests.Session()
response = session.get(login_url, headers=header)
cookies = response.cookies
for c in cookies:
    cookie = c.name + '=' + c.value
print('cookie-get:' + cookie)
selector = etree.HTML(response.text)
token = selector.xpath('//input[@name="lt"]/@value')[0]  # 解析出登陸所需的lt信息
print(token)

得到lt的值,加入到自己創建的表單中

根據上面抓包工具中需要的值,創建所需表單

login_data={
'useValidateCode': '0',
            'isremenberme': '1',
            'ip':'',
            'username': username,
            'password': password,
            'losetime': '30',
            'lt': token,
            '_eventId': 'submit',
            'submit1':''
}

post請求登陸:

response = session.post(login_url, data=login_data, headers=header)

print(response.status_code)

我們成功了,哈哈哈,很開心!

進入了主頁面:

 

 這是我們登進的頁面,要爬取成績,成績在教務系統中,細心觀察

get下鏈接:http://******/xs_main.aspx?xh=***&type=1

response = session.get(main_url, headers=header)
print(response.cookies)
print(response.status_code)
print(BeautifulSoup(response.text, 'lxml'))

response.status_code返回200,以為成功了?打印一下

額!難受,鬼刀一開,看不見........他竟然返回的是登陸界面?

究竟是什么問題呢,我懷疑是cookie:

因為

print(response.cookies)打印的值是:

<RequestsCookieJar[]>
瀏覽器訪問抓包看下
啊嘞嘞,why?
查看其他請求,在Cookie中竟然都沒有創建過ASP.NET_SessionID
那怎么辦呢?
那我自己寫一個吧:
requests.utils.add_dict_to_cookiejar(session.cookies,{"ASP.NET_SessionId":"0ftp4drb5uar0r55urffkobr"})

哎呀,成功了。開心,不過似乎ASP.NET_SessionId有時效性。

不管了,也不知道為啥Session.Cookies得不到所需要的Cookie,先不管了,各位大佬,發現問題的話,或者有啥好的解決辦法麻煩告訴下!拜謝

代碼地址:https://github.com/JackyWjx/HNCU下的HNCU.py

 
****************************************第二次更新*********************************************************************************************************************************

這個做法有問題呀:所以:我又來了。。。

 

經過學習cookie,意識到自己以前的一些錯誤,特來改正:

上篇對於ASP.NET_SessionId值不知道如何解決,只能自己添加

解決原理:既然ASP.NET_SessionId是一個cookie值,那么有一個請求的作用就是服務器設置ASP.NET_SessionId給瀏覽器,那么我們就直接拿到這個請求不就迎刃而解了

 

請求就知道了,那么請求這個請求就解決了,有由於我們的項目使用的requests那么也不需要設置啥了

 代碼地址:

 https://github.com/JackyWjx/HNCU    下的HNCU-neW.py

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM