Jax-Rene / Fzu-Score-Grep

FZU教务处成绩还不出来!我要自己写一个爬虫来帮我抓取成绩!

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

前言

作为一名FZU大四的学生怎么好意思说自己没爬过教务处呢?乘最后一门成绩还没出来,写个爬虫自动爬取我的那门课的成绩。运行一次爬取一次,如果成绩出来了,就发送邮件到我的邮箱告诉我成绩出来了以及多少分。写完后,我放到服务器上面使用shell的crontab命令来每小时自动执行一次。

第一次模拟登录遇到的一些有趣的事

神奇的跳转

我在这次中一开始是使用postman模拟先探探路,可是发现发送过去的一直是302。于是后来使用了fiddler以及wireshark抓包分析,发现FZU的过程是这样的:

首先登录URL -> 跳转到另外一个页面并且获取到一个id -> 把这个id加入URL发送到另外一个页面 -> 这个页面后又会获取一个新的id -> 最后你有这个id就能访问任意的站点了(前提你有权限)

哦对了,关于权限。我在Chrmoe的控制台里看到,我们每个账户必须有一个写死的cookie每个账户都不一样的!如果没有这个cookie将会一直收到“登录超时请重新登录”

服务器部署

代码写完后,通过maven打包下准备上传。 注意这里不能直接用mvn package 因为package 是不能把以来也一起打包进去的。所以我里面加了个另外一个assembly的插件。

打包操作: mvn assembly:assembly 打包完在target会发现一个jar包(with dependies 那个)然后通过scp命令上传到服务,最后在服务器通过cronbtab命令每5分钟执行一次(谁叫我服务器资源那么空呢!)

服务器上crobtab操作 */5 * * * * java -jar GrepScore (GrepScore是我给这个jar包的重命名)

其他

关于其他的好像也没啥好说的了,一个比较简单的爬虫小程序而已。算是练练手吧~当然如果要做大的话,如做一个XX助手,也是可以按照这个做法一点一点做下去的。

About

FZU教务处成绩还不出来!我要自己写一个爬虫来帮我抓取成绩!


Languages

Language:Java 100.0%