整理电脑文件,偶然翻到自己用好奇其他人的普通话成绩,写的一个小脚本。
大体思路:
1初始化学号序列
2用php提交get请求抓取返回页面,正则提取成绩
3直接输出结果到html
1 <html> 2 <!-- 3 时间:2:03 2014/5/24 星期六 4 作者:622 5 名称:普通话考试批量说明 6 说明:此程序仅用于get方式单学号无验证码查询 7 8 在Apache+PHP环境下,修改中文名字为英文即可运行 9 10 --> 11 <table border="1" cellspacing="0"> 12 <?php 13 set_time_limit(0);//设定一个程式所允许执行的秒数,它预设的限制时间是30秒 14 $num = 201100140001;//初始学号 15 while($num < 201100140190){ //终止学号 16 $handle = fopen("http://www.pjjs.sdu.edu.cn/yywz/submitquery.asp?studentname=".$num, "r"); 17 $contents = stream_get_contents($handle); 18 $pattern = '/<font\scolor=red\ssize=2>(.*?)<\/font>/xm'; 19 if(preg_match_all($pattern,$contents,$matches)){ 20 ?> 21 <tr> 22 <td><?=$matches[1][1]?></td> 23 <td><?=$matches[1][0]?></td> 24 <td><?=$matches[1][2]?></td> 25 <td><?=$matches[1][3]?></td> 26 <td><?=$matches[1][4]?></td> 27 <td><?=$matches[1][5]?></td> 28 </tr> 29 <?php 30 } 31 else{ 32 echo "<tr> 33 <td>".$num."</td> 34 <td colspan=5>查无此人</td> 35 </tr>"; 36 } 37 $num ++; 38 } 39 ?> 40 </table> 41 </html>