php实现登录并抓取个个人信息,用PHP模拟登录学校教务处抓取信息(一)

我校的成绩查询比较麻烦,教务处系统只能用IE内核访问,我自己的mac访问不了,而且手机也不能访问,正逢碰上一个项目需要能通过学号密码获取成绩,而且学校不给数据库接口,所以通过程序模拟登录抓取信息。整个过程将用两篇文章来阐述,第一篇理论,第二篇实践。

首先,百度××教务处,出来如下页面

0818b9ca8b590ca3270a3433284dd417.png

在左侧登录,我使用的360极速浏览器,用自带的开发者工具抓包。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

点击登录之后,向Logon.do发送了请求,并用POST将学号,密码,验证码传递过去,后面的x和y的来源后面再说,他们并没有实际用途,cookie是在第一次访问教务处就建立的,但是奇怪的是为什么POST内容不是USERNAME=XXXX,而是USERNAME2=&USERNAME=XXX,其实这是因为从教务处网站跳过去的,所以前面有,如果从专门的登录界面过去,就没有前面的。

0818b9ca8b590ca3270a3433284dd417.png

从这个专门登录界面登录,就不会出现USERNAME2。输入正确的学号,密码,验证码,登录。

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

从专门的登录界面登录之后看到第一个请求,着代表先向/Logon.do?method=logon发送了一个post请求,然后再GET了/framework/main.jsp页面,前面的post请求之前看到过,是发送的学号,密码,验证码。get请求的响应正文就是显示的页面。

以上就完成了登录,然后我要查询成绩,打开成绩信息,看抓包情况:

0818b9ca8b590ca3270a3433284dd417.png

首先就GET了http://×××/framework/new_window.jsp?lianjie=&winid=win2,然后就是其他信息。再点击左侧成绩查询:

0818b9ca8b590ca3270a3433284dd417.png

这回又POST一个请求,然后是待了一个tktime参数的GET请求,这两个比较引人注意,选择查询选项:

0818b9ca8b590ca3270a3433284dd417.png

这样会默认查询2014-2015第二学期全部成绩,点击查询,

0818b9ca8b590ca3270a3433284dd417.png

可以看到,有一个POST请求很值得注意,类型为text/html,点开看

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

它POST了我们选的开课时间等参数,然后返回了成绩,也就是说如果想要自动得到成绩,我需要事先输入学号,密码,和验证码,理论上来说剩下的都可以自动实现。需要用到的软件有Apache,php,并且需要注意的是PHP需要开启cURL功能,具体开启方法也留在下一章详述。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值