php模拟登陆正方教务管理系统(thinkPHP5.0)

如果想书写一个爬虫,首先应该通过浏览器将你登陆时,本地与服务器之间的信息传递通过抓包的方式获得,然后通过编程语言去模拟这种信息传递。

首先在浏览器上登陆正方教务系统,用Fiddler进行抓包,
发现我们点击登陆首页时,首先向
这个网址发送请求

但它的状态值时302,指这是个重定向请求,在向这个连接发送请求后,会由js随机生成一串字符,然后加到上面的url中

实际上我们是像
这个网址发送登陆请求,这个网址返回的才是登陆界面


 
上图中我们可以看到Request URL中附加了一个字段,这个字段是随即的,经过测试,得出正方系统有两种登陆方式,一种是通过cookie来确认用户,另一种是通过随即字符串的形式,现在我们校网所使用的是随机字符串的形式。在第一次向default2.aspx 进行post提交时,可能是通过js产生了随即字符串并被附着在url中,验证通过之后会被重定向到xs_main.aspx页面,访问此页面通过的是get方式。 

在这个请求后,系统还会向 发送验证码请求,这个请求返回的是验证码图片,网上说屏蔽这个请求就可以登陆,但我们学校的网站好像不行,不输入验证码每次登陆返回的是登陆界面,所以要在php上把验证码获取,并附在post请求上模拟登陆提交到登陆的url

还有两个隐藏的input输入框


就是说登陆的时候,必须把这两个值加在post请求中,否则也是无法登陆的,这两个值也是js随机生成的,所以也需要php获取后加在post请求中。

首先是获取验证码和su并提交

getsecertcode.php

<?php
function curl_request($url, $post = '', $referer = '')
{//$cookie='', $returnCookie=0,
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_USERAGENT, &
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值