前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >模拟登陆我终于还是进了

模拟登陆我终于还是进了

作者头像
一点儿也不潇洒
发布2018-08-07 10:21:06
5370
发布2018-08-07 10:21:06
举报
文章被收录于专栏:肖洒的博客

爬了这么久的教务处,终于还是绕过了千山万水登进来了。 这段时间准备期末考,忙,好久不更博。 年终总结也没有写。 是时候开更啦!

XDJiao_Wu_Chu.py说明文档

1、init():两个URL分别为用抓包软件获取的实际登录网址和实际提交账号密码的网址。 2、login():用抓包软件获取的用Chrome浏览器登录教务处的head报文,login()为模拟登录教务处的所需信息。 3、Print():将登录进去的课程表HTML网页打印出来。 4、使用前请确认安装BeautifulSoup模块。请修改里面的学号id和password再进行运行。 5、后续将从HTML网页中提取出有用的信息。 6、运行login()后便可以登录进教务处系统,修改Print()中的URL即可完成不同信息的获取,比如换成成绩网页的URL、教务通知的URL等等。

代码语言:javascript
复制
#Python35 爬虫 西电 研究生教务处 课表
#肖洒 2017/1/19 V1.0
#请替换id和password再进行使用
# -*-encoding:utf-8-*-
# coding=utf-8
__author__ = 'ysc'
import requests
import csv
from bs4 import BeautifulSoup

class ScrapeXd:

    def __init__(self, auth_url=None, log_url=None):
        if not auth_url:
            self.auth_url = "http://ids.xidian.edu.cn/authserver/login?service=http%3A%2F%2Fjwxt.xidian.edu.cn%2Fcaslogin.jsp"
            self.log_url = "http://jwxt.xidian.edu.cn/caslogin.jsp"
        else:
            self.auth_url = auth_url
            self.log_url = log_url
        self.session = requests.Session()

    def login(self, id='XXXXXXXXXX', password='XXXXXX'):
        r = self.session.get(self.auth_url)
        data = r.text
        bsObj = BeautifulSoup(data, "html.parser")
        lt_value = bsObj.find(attrs={"name": "lt"})['value']
        exe_value = bsObj.find(attrs={"name": "execution"})['value']
        params = {'username': id, 'password': password,
                  "submit": "", "lt": lt_value, "execution": exe_value,
                  "_eventId": "submit", "rmShown": '1'}
        headers = {'User-Agent': "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0",
           '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",
           "Referer": "http://ids.xidian.edu.cn/authserver/login?service=http%3A%2F%2Fjwxt.xidian.edu.cn%2Fcaslogin.jsp",
           "Content-Type": "application/x-www-form-urlencoded"}
        s = self.session.post(self.auth_url, data=params, headers=headers)
        s = self.session.get(self.log_url)

    def Print(self):
        grade_page = self.session.get("http://yjsxt.xidian.edu.cn/eduadmin/findCaresultByStudentAction.do")
        bsObj2 = BeautifulSoup(grade_page.text, "html.parser")
        print(bsObj2)


if __name__ == '__main__':
    # 初始化爬虫对象
    sx = ScrapeXd()
    # 登录(在此处传入正确的个人学号与密码信息)
    sx.login(id='XXXXXXXXXX', password='XXXXXX')
    sx.Print()
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017-01-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • XDJiao_Wu_Chu.py说明文档
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档