模拟浏览器登录爬取合工大课表生成ics文件导入日历
模拟浏览器登录合肥工业大学新版教务系统获得课程表数据
将课程表转化为日历事件,生成ics文件
通过outlook邮箱/win10日历/手机日历导入ics文件
项目已完成
项目源码地址: https://github.com/ssyu0808/HFUTICS
分析登录过程(感兴趣的可以自己抓包和分析页面源码)
- 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来向服务器发送请求了
直奔主题,获取课表数据(datum)
- 分析页面(http://jxglstu.hfut.edu.cn/eams5-student/for-std/course-table)源码找到
studentId
和semesterId
- 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":"" }
- 分析页面(http://jxglstu.hfut.edu.cn/eams5-student/for-std/course-table)源码找到
处理datum,处理成ics数据,导入到日历即可
结束
这里只是简要的说一下过程,详细分析步骤有时间再做。
模拟浏览器登录爬取合工大课表生成ics文件导入日历相关推荐
- 【python】实验2项目2:使用爬虫Selenium模拟浏览器获取爬取QQ音乐中你喜欢的某位歌手(陈奕迅)
请使用爬虫Selenium模拟浏览器获取爬取QQ音乐中你喜欢的某位歌手(可以是任意歌手)最受欢迎的前5首歌曲的歌词.流派.歌曲发行时间.评论条数.评论时间.评论点赞次数.评论内容具体(每一首歌的评论& ...
- python爬取合工大、安大、中科大就业信息网宣讲会信息——requests_htmlmongoDB
# -*- coding: utf-8 -*- """ Created on Fri Apr 27 15:12:18 2018 #python 3.6 "&qu ...
- python爬虫+网页点击事件+selenium模拟浏览器,爬取选股宝内容
(一)PYTHON的安装(已安装,可跳过此步骤) 1.PYTHON下载 PYTHON官网:https://www.python.org/ 按照对应的系统下载,我这里是window系统,点击window ...
- python模拟用户登录爬取阳光采购平台数据
阳光采购平台每月初会把当月的价格挂到平台上,现模拟用户登录平台,将需要的数据保存到csv文件和数据库,并且发送给指定人员. 开发环境搭建: 网上教程一大堆,不赘述了.安装好后需要安装一些必须的库,如下 ...
- 第26讲:模拟登录爬取实战案例
在上一课时我们了解了网站登录验证和模拟登录的基本原理.网站登录验证主要有两种实现,一种是基于 Session + Cookies 的登录验证,另一种是基于 JWT 的登录验证,那么本课时我们就通过两个 ...
- 2021春项目需求记录 python实现模拟登录+爬取NASA Modis 上的产品数据
python实现模拟登录+爬取Nasa Modis 上的产品数据 概述 需求分析 基本思路 代码 概述 3月的中旬时候参与了学校的一个大创项目,作为本科生,本人只是摸鱼打杂,负责了其中的一个功能模块: ...
- python实现模拟浏览器登录入口_登录采集——模拟浏览器登录QQ邮箱
网络爬虫学习中,简单的静态页面数据,难以满足我们的一颗"好学"之心,且现在我们"好奇"的数据往往藏得很深,要么需要登录,要么为动态加载--今天,就来分享一下模拟 ...
- python爬虫——Cookie登录爬取豆瓣短评和影评及常见问题
python爬虫--Cookie登录爬取豆瓣短评和影评 常见问题(本文已解决) 具体步骤 一.获取网页源码 短评.影评 二.解析网页源码及爬取评论 1.短评网页解析 ①确定位置 2.短评爬取 ①名称爬 ...
- python爬虫初学实战——免登录爬取easyicon里的vip图标(2)
python爬虫初学实战-免登录爬取easyicon里的vip图标(2) 实验日期:2020-08-09 tips:没看过前面(1)的可以康康,指路 -> 爬取easyicon里的png图标 成 ...
最新文章
- R语言中的%in%操作符是干什么的?
- 使用mii-tool设置网卡速率
- spring 定时器设置停止_单片机MSP430入门-理论⑦--定时器模块-定时器A②
- 使用Flink时从Kafka中读取Array[Byte]类型的Schema
- php 字符串替换 正则表达式,PHP中一些可以替代正则表达式函数的字符串操作函数...
- singleInstance和singleTask导致startActivityForResult回调失败
- jQuery 1.9+ ajaxStart事件无效,无法被触发的原因。
- Android OpenCV Manager简介
- leetcode 1: 找出两个数相加等于给定数 two sum
- UA OPTI501 电磁波 经典电动力学中的Fourier方法基础
- 在TCP/IP模型中,( )处理关于可靠性、流量控制和错误校正等问题。
- 电子商务之网购魅力何在?(网购用户行为分析)
- 【2018.6.7】阶段总结
- PAT乙级 1031 查验身份证 (15 分)
- Ubuntu 解决触摸板不识别问题
- 实现 API 调用接口
- 手机装linux无root权限,linux无root权限安装screen(示例代码)
- 动态规划-泰波那契序列
- System.Diagnostics.Stopwatch
- 5s解决报错:Unbound pointcut parameter ‘xxxxxx‘