模拟浏览器登录合肥工业大学新版教务系统获得课程表数据
将课程表转化为日历事件,生成ics文件
通过outlook邮箱/win10日历/手机日历导入ics文件

项目已完成

项目源码地址: https://github.com/ssyu0808/HFUTICS

  1. 分析登录过程(感兴趣的可以自己抓包和分析页面源码)

    • get(http://jxglstu.hfut.edu.cn/eams5-student/login-salt)获得salt,也会携带着本次连接的cookie,以后的每次请求(post or get)均需要携带着这个cookie
    • 密码加密password = sha1(salt+"-"+password)
    • post(http://jxglstu.hfut.edu.cn/eams5-student/login)表单数据(当然此次post携带的cookie需要和之前的get的cookie保持一致)
    {"username":"学号","password":"加密后的密码","captcha":""
    }
    
    • 到这里我们就成功地拿到了登入后的cookie,接下来需要什么数据我们就可以通过携带这个cookie来向服务器发送请求了
  2. 直奔主题,获取课表数据(datum)

    • 分析页面(http://jxglstu.hfut.edu.cn/eams5-student/for-std/course-table)源码找到studentIdsemesterId
    • get(http://jxglstu.hfut.edu.cn/eams5-student/for-std/course-table/get-data?bizTypeId=2&semesterId=semesterId&dataId=studentId)
    • 从返回的json数据中得到lessonIds
    • post(http://jxglstu.hfut.edu.cn/eams5-student/ws/schedule-table/datum)表单数据,获取到datum(也即是所有课表信息)
    {"lessonIds":`lessonIds`,"studentId":`studentId`,"weekIndex":""
    }
    
  3. 处理datum,处理成ics数据,导入到日历即可

  4. 结束
    这里只是简要的说一下过程,详细分析步骤有时间再做。

模拟浏览器登录爬取合工大课表生成ics文件导入日历相关推荐

  1. 【python】实验2项目2:使用爬虫Selenium模拟浏览器获取爬取QQ音乐中你喜欢的某位歌手(陈奕迅)

    请使用爬虫Selenium模拟浏览器获取爬取QQ音乐中你喜欢的某位歌手(可以是任意歌手)最受欢迎的前5首歌曲的歌词.流派.歌曲发行时间.评论条数.评论时间.评论点赞次数.评论内容具体(每一首歌的评论& ...

  2. python爬取合工大、安大、中科大就业信息网宣讲会信息——requests_htmlmongoDB

    # -*- coding: utf-8 -*- """ Created on Fri Apr 27 15:12:18 2018 #python 3.6 "&qu ...

  3. python爬虫+网页点击事件+selenium模拟浏览器,爬取选股宝内容

    (一)PYTHON的安装(已安装,可跳过此步骤) 1.PYTHON下载 PYTHON官网:https://www.python.org/ 按照对应的系统下载,我这里是window系统,点击window ...

  4. python模拟用户登录爬取阳光采购平台数据

    阳光采购平台每月初会把当月的价格挂到平台上,现模拟用户登录平台,将需要的数据保存到csv文件和数据库,并且发送给指定人员. 开发环境搭建: 网上教程一大堆,不赘述了.安装好后需要安装一些必须的库,如下 ...

  5. 第26讲:模拟登录爬取实战案例

    在上一课时我们了解了网站登录验证和模拟登录的基本原理.网站登录验证主要有两种实现,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证,那么本课时我们就通过两个 ...

  6. 2021春项目需求记录 python实现模拟登录+爬取NASA Modis 上的产品数据

    python实现模拟登录+爬取Nasa Modis 上的产品数据 概述 需求分析 基本思路 代码 概述 3月的中旬时候参与了学校的一个大创项目,作为本科生,本人只是摸鱼打杂,负责了其中的一个功能模块: ...

  7. python实现模拟浏览器登录入口_登录采集——模拟浏览器登录QQ邮箱

    网络爬虫学习中,简单的静态页面数据,难以满足我们的一颗"好学"之心,且现在我们"好奇"的数据往往藏得很深,要么需要登录,要么为动态加载--今天,就来分享一下模拟 ...

  8. python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题

    python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...

  9. python爬虫初学实战——免登录爬取easyicon里的vip图标(2)

    python爬虫初学实战-免登录爬取easyicon里的vip图标(2) 实验日期:2020-08-09 tips:没看过前面(1)的可以康康,指路 -> 爬取easyicon里的png图标 成 ...

最新文章

  1. R语言中的%in%操作符是干什么的?
  2. 使用mii-tool设置网卡速率
  3. spring 定时器设置停止_单片机MSP430入门-理论⑦--定时器模块-定时器A②
  4. 使用Flink时从Kafka中读取Array[Byte]类型的Schema
  5. php 字符串替换 正则表达式,PHP中一些可以替代正则表达式函数的字符串操作函数...
  6. singleInstance和singleTask导致startActivityForResult回调失败
  7. jQuery 1.9+ ajaxStart事件无效,无法被触发的原因。
  8. Android OpenCV Manager简介
  9. leetcode 1: 找出两个数相加等于给定数 two sum
  10. UA OPTI501 电磁波 经典电动力学中的Fourier方法基础
  11. 在TCP/IP模型中,( )处理关于可靠性、流量控制和错误校正等问题。
  12. 电子商务之网购魅力何在?(网购用户行为分析)
  13. 【2018.6.7】阶段总结
  14. PAT乙级 1031 查验身份证 (15 分)
  15. Ubuntu 解决触摸板不识别问题
  16. 实现 API 调用接口
  17. 手机装linux无root权限,linux无root权限安装screen(示例代码)
  18. 动态规划-泰波那契序列
  19. System.Diagnostics.Stopwatch
  20. 5s解决报错:Unbound pointcut parameter ‘xxxxxx‘

热门文章

  1. 昵称脱敏只显示第一个字剩下的显示星号
  2. QQ完全资费明细表!
  3. 注册商标和不注册商标有什么区别?
  4. SVG中path标签的简单使用
  5. 心跳包间隔多少时间合适_多路SOCKET、心跳包、注册包的作用
  6. 生死看淡 不服就干!雷军这次真的被逼急了
  7. Java字符串拼接(连接)
  8. Java获取时间戳工具类Utils
  9. JAVA异常:Unsupported major.minor version 52.0
  10. VUE Element UI 父组件调用子组件方法变量,子组件使用父组件变量