鍍金池/ 問答/數(shù)據(jù)分析&挖掘  Java  Python  HTML/ python爬蟲 教務(wù)網(wǎng)站,登陸成功但操作卻提示沒有權(quán)限

python爬蟲 教務(wù)網(wǎng)站,登陸成功但操作卻提示沒有權(quán)限

最近在做我們學(xué)校教務(wù)的爬蟲,后來遇到一個(gè)問題,服務(wù)器的響應(yīng)顯示登陸成功了,但是操作的request卻提示沒有權(quán)限,后來發(fā)現(xiàn)不單單是爬蟲,用chrome操作也是一樣,想知道這種現(xiàn)象內(nèi)在的原因,以及如何解決
相同問題在知乎也提問了,那里貼了詳細(xì)的圖片:https://www.zhihu.com/questio...
把代碼也一起貼出來吧,但是教務(wù)的密碼出于一些考慮就不貼出來了,如果要跑代碼的,請(qǐng)跟我qq聯(lián)系,842391412

# -*- coding: utf-8 -*-
"""
Created on Mon Mar  5 16:51:34 2018

@author: r
"""

import requests as req
import os
import time
loginUrl=r"http://jwxt.wust.edu.cn/whkjdx/Logon.do?method=logon"
randomCodeUrl=r"http://jwxt.wust.edu.cn/whkjdx/verifycode.servlet"
data={"USERNAME":"201513158020","PASSWORD":"***","x":"0","y":"0"}
header={"User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; LCTE; rv:11.0) like Gecko",
        "Referer":"http://jwxt.wust.edu.cn/whkjdx/Logon.do?method=logon",
        "Host": "jwxt.wust.edu.cn",
        "Accept": "text/html, application/xhtml+xml, image/jxr, */*",
        "Accept-Language": "zh-Hans-CN,zh-Hans;q=0.5",
        "Accept-Encoding": "gzip, deflate",
        "Connection": "Keep-Alive"
        }
#首先獲取驗(yàn)證碼
imgobj=req.get(randomCodeUrl)
#print(imgobj.cookies)
with open("img.jpg","wb") as f:
    f.write(imgobj.content)
os.startfile("img.jpg")
code=input("請(qǐng)輸入驗(yàn)證碼:")
data["RANDOMCODE"]=code

#登陸請(qǐng)求
login=req.post(loginUrl,data=data,cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
time.sleep(2)
main=req.get("http://jwxt.wust.edu.cn/whkjdx/framework/main.jsp",cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
header["Referer"]="http://jwxt.wust.edu.cn/whkjdx/framework/main.jsp"
temp1=req.get("http://jwxt.wust.edu.cn/whkjdx/framework/new_window.jsp?lianjie=&winid=win1",cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
#print(login.cookies)
#print(login.text)
header["Referer"]="http://jwxt.wust.edu.cn/whkjdx/framework/new_window.jsp?lianjie=&winid=win1"
temp2=req.get("http://jwxt.wust.edu.cn/whkjdx/framework/menuleft.jsp?fater=&winid=win1",cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
temp3=req.get("http://jwxt.wust.edu.cn/whkjdx/framework/menuindex.jsp",cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
#http://jwxt.wust.edu.cn/whkjdx/jiaowu/cjgl/xszq/query_xscj.jsp?tktime=1520327730000
#http://jwxt.wust.edu.cn/whkjdx/xszqcjglAction.do?method=queryxftj
temp8=req.get("http://jwxt.wust.edu.cn/whkjdx/xszqcjglAction.do?method=queryxftj",cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
timestamp=str(int(time.time()))+"000"
temp4=req.get("http://jwxt.wust.edu.cn/whkjdx/jiaowu/cjgl/xszq/query_xscj.jsp?tktime="+timestamp,cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
gpa=req.post("http://jwxt.wust.edu.cn/whkjdx/xszqcjglAction.do?method=queryxscj",cookies=req.utils.dict_from_cookiejar(imgobj.cookies),headers=header)
回答
編輯回答
苦妄

如果ie可以操作,那就把程序里的useragent換成ie的咯

2017年11月8日 13:37
編輯回答
離殤

試試把ie抓包成功的headers除了cookie全部寫在header里,例子如下

import requests
headers = {'Host':'www.douban.com',
           'Referer': 'https://www.douban.com/',
           'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.84 Safari/537.36',
           'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
           'Accept-Language': 'zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3',
           'Accept-Encoding':'gzip, deflate, br'}

r = requests.get('https://www.douban.com/login', headers=headers)
2017年11月9日 06:51