Top Menu

监视SPTA网站获取考试查分信息

最近临近查分日期,每天第一件做的事就是登录SPTA看成绩是否出了,简直要变强迫症,所以准备弄一个自动程序等可以查成绩了直接通过邮件通知我。

网页分析部分

网页分析以前一直用的PHP Simple HTML DOM Parser,这次准备尝试下新鲜事物,换成了blackfire/player

用Ctrl+Shift+I研究了下SPTA的页面,发现SPTA的页面结构简直堪称完美,整个页面一个class都没有,全部是用表格定位的,随手copy了一个链接的XPath居然是这样的。

差点崩溃,还好老师教导过我们,没有精钢钻,就自己慢慢磨。打印所有a节点,然后用Ctrl+F找,发现第40个节点正好是第一条需要的内容。最后的分析代码如下,为方便起见,只检查前三条内容。

有了网页分析代码之后,接下来的事情就简单了

定时监控部分

定时部分每小时运行一次网页分析代码,对结果进行判断,如果出现目标内容,则激活并发送邮件。

为了实现每小时监控,用 crontab -e 增加一条 0 * * * * 的每小时定时任务来访问定时监控程序

监控程序通过 file_get_contents() 获得分析程序的JSON格式数据,然后用 json_decode() 解码

如果发现分析程序有值,则通过邮件发送部分发送一封之前设定好内容的邮件到指定邮箱

邮件发送部分

邮件发送部分用的是PHPMailer / PHPMailer插件,这款插件功能强大,SMTP/XOAUTH2都不在话下,但是这里只用到了最简单的 send() 函数。

API

API请求地址

返回值

说明

content_type 检查是否成功分析网页, check_1st 至 check_3st 是第一至第三条内容,值为0说明没有目标内容,值为1说明出现目标内容, check_no 是合并检查项,前三条内容中只要有一条符合目标内容时,该值就为1。

There are no comments yet

  • Hello, guest

Powered by WordPress. Designed by WooThemes