python爬虫 教务网站,登陆成功但操作却提示没有权限
最近在做我们学校教务的爬虫,后来遇到一个问题,服务器的响应显示登陆成功了,但是操作的request却提示没有权限,后来发现不单单是爬虫,用chrome操作也是一样,想知道这种现象内在的原因,以及如何解决
相同问题在知乎也提问了,那里贴了详细的图片:https://www.zhihu.com/questio...
把代码也一起贴出来吧,但是教务的密码出于一些考虑就不贴出来了,如果要跑代码的,请跟我qq联系,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"
}
#首先获取验证码
imgobj=req.get(randomCodeUrl)
#print(imgobj.cookies)
with open("img.jpg","wb") as f:
f.write(imgobj.content)
os.startfile("img.jpg")
code=input("请输入验证码:")
data["RANDOMCODE"]=code
#登陆请求
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)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果ie可以操作,那就把程序里的useragent换成ie的咯
试试把ie抓包成功的headers除了cookie全部写在header里,例子如下