作为一名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助手,也是可以按照这个做法一点一点做下去的。