当前位置:Gxlcms > PHP教程 > PHP如何模拟登录学校个人门户?

PHP如何模拟登录学校个人门户?

时间:2021-07-01 10:21:17 帮助过:9人阅读

sso.ctgu.edu.cn:7002/ca

用户名:2010138112
密码:15872474165

如题所示,模拟登录获取个人信息。求高手给出源代码

回复内容:

泻药
建议连同酬劳一并写入提问当中。 之前写过一个,基本上和你的需求是一样的,给你参考自己写吧。

Crawl/identifyCode at master · Tairy/Crawl · GitHub

这种模拟登陆其实很简单,php的话主要用curl来实现。仔细研究一下你要抓的站具体是怎么实现用户登录的,可以用wireshark或者burpsuite(建议用后者)抓包看看整个过程都有那几次请求,每次请求都发送了哪些数据,构造好发给他就可以实现登录了。

之后获取个人信息就很容易了,找找php解析html库,或者最简单粗暴的就是字符串截取函数加正则表达式,把你想要的数据提取出来就好了。

对于你给出的这种验证码属于非常容易识别的验证码了,基本的识别原理参看使用Canvas进行验证码识别

当然比较蛋疼的问题就是网页编码问题,经常爬过来全是乱码,网上找找看转码的方法,都试一下,这是一门玄学,能不能成功看你人品和耐心吧。

我这个repo里面基本上实现了上面的一套流程,你可以参照着写吧!

最后还想说的是,爬站还是用python吧,request+beautifulsoup不是一般的好用。做这个php真不擅长。虽然我依然认为php是世界上最好的语言!!!(如果你想用python或者其他的写的话看看我这个repo里面的其他目录,我在readme里面写清楚的)。 之前写过一个模拟登录我们学校门户网站的PHP程序,当时主要是为了抓取学生成绩信息计算出学分积,而且我们的门户网站没有验证密码,所以就简单了很多,鉴于你这个有验证码,就会涉及到图片验证码的识别,这个恐怕你得找个识别率高的识别算法才能搞定了,我就简单说下模拟登录的步骤,分析下你们那个网页的登录过程,找到登录时的表单,然后把帐号,密码和验证码参数都填好提交表单,然后一步一步分析登录过程,一般都会跳转好几次,还有可能是跨域名的跳转,所以最好每次都更新下cookie,直到转到有需要信息的页面,后面每次get页面时记得带上cookie就好... 使用 firefox,chrome,safari 之类的主流浏览器看一下请求头。
然后用 php 的 curl 模拟请求。
curl_setopt($ch, CURLOPT_HTTPHEADER, $HttpHeaderArray); 这种问题应该去Google百度,而不是在这提,网上一大堆的答案 curl,搞个cookie,设置下浏览器标识,还有什么referer,你的问题听起来没多难,写起来不知道那个网站防止自动登陆的代码到底怎样,要一个一个试,尤其是一些ajax操作,参数裹在一堆js里,少传一个参数给你一个error,说到底是个体力活。 戳开后发现有验证码,好吧… 你要多加一步验证码识别的模块,然后全部post到接口就应该能行了 简单的办法是用curl,不会先百度一下吧,一个晚上怎么都搞清楚了。然后先用浏览器抓包分析下,搞清楚request和response,然后就可以写代码去实现了。验证码能写出识别算法就写吧,写不出来就把验证码抓下来手填吧=_= 爬虫思维

人气教程排行