python爬虫 教务网站,登陆成功但操作却提示没有权限

发布于 2022-09-06 20:00:13 字数 2879 浏览 17 评论 0

最近在做我们学校教务的爬虫,后来遇到一个问题,服务器的响应显示登陆成功了,但是操作的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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

给不了的爱 2022-09-13 20:00:13

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

云醉月微眠 2022-09-13 20:00:13

试试把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)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文