知识点
相关文章
更多最近更新
更多PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询
2019-03-02 00:44|来源: 网路
伴随微信的红火,微信公众平台成为许多开发者的下一个目标。笔者本身对于这种新鲜事物没有如此多的吸引力。但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能。于是便在空余时间研究了一番。
主要的实现步骤是,通过PHP的CURL技术模拟登陆目标网站,通过登陆的用户,获取到用户的成绩信息,使用正则表达式对数据进行抓取和存储,使用HTML技术对数据进行重新弄排版。
微信公众平台的功能就是通过浏览的目的来实现成绩查询。整体的技术实现就在于PHP的CURL技术。下面就随便找了一个文件,获取成绩。具体代码如下。
<HTML> <HEAD><TITLE>请您登录</TITLE> <script language="JavaScript"> function Judge() { var WebUserNO=document.all["WebUserNO"].value; if(WebUserNO=="") {alert("登录用户不能为空!"); document.all["WebUserNO"] .focus(); return false; } } </script> <META http-equiv=Content-Type content="text/html; charset=gb2312"> <STYLE type=text/css>TD { FONT-SIZE: 12px } p1 { FONT-SIZE: 12px } INPUT { FONT-SIZE: 12px } p2 { FONT-SIZE: 12px; LINE-HEIGHT: 14pt } p3 { FONT-SIZE: 14px } p4 { FONT-SIZE: 14px; LINE-HEIGHT: 14pt } p5 { FONT-SIZE: 16px } p6 { FONT-SIZE: 14px; LINE-HEIGHT: 180% } p7 { FONT-SIZE: 12px; COLOR: #136792; LINE-HEIGHT: 160% } BIG { FONT-SIZE: 18px } A:link { COLOR: #0000ff } A:visited { COLOR: #0000ff } A:hover { COLOR: #ff0000 } hand { CURSOR: hand; BACKGROUND-COLOR: rgb(208,207,192) } </STYLE> <!--style end--> <META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD> <BODY bgColor=#ffffff topMargin=7 marginheight="0" marginwidth="25"> <form name="LoginForm" method="post" action="qing.php"> <TABLE cellSpacing=0 cellPadding=0 width="100%" border=0> <TBODY> <TR> <TD bgColor=#e6e6e6 height=20></TD> <TD align=right bgColor=#e6e6e6> </TD> </TR></TBODY></TABLE><BR> <TABLE cellSpacing=0 cellPadding=1 width=492 align=center border=0> <TBODY> <TR> <TD> <TABLE borderColor=#c1eaff cellSpacing=0 cellPadding=20 width=474 align=center border=1> <TBODY> <TR> <TD><TABLE width=283 height="100" border=0 align=center cellPadding=0 cellSpacing=0> <tr> <td width="50" rowspan="4"> </td> <td align="left"> </td> </tr> <tr> <td height="22" align="left">用户名: <input name="WebUserNO" type="text" id="WebUserNO" size="12"></td> </tr> <tr> <td height="22" align="left">密 码: <input name="Password" type="password" id="Password" size="12"></td> </tr> <tr> <td height="22" align="left" valign="middle"><p>附加码: <input name="Agnomen" type="text" id="Agnomen" size="12"> </p> <p><A href="User_JSP/FuJiaMa.htm" target="_blank" ><img src="http://218.61.108.163/ACTIONVALIDATERANDOMPICTURE.APPPROCESS" width="60" height="20" alt="验证码说明" border="0"></a></p></td> </tr> <tr align="center"> <td colspan="2"><input type="image" border="0" name="submit" src="http://218.61.108.163/User_JSP/images/Logon.gif" width="37" height="18" onClick="javascript:return Judge();"> </td> </tr> <tr> <td colspan="2"><div align="center"><input name="applicant" type="hidden" value="ACTIONQUERYSTUDENTSCORE"></div></td> </tr> </TABLE> <br> </TD> </TR> </TABLE></TD></TR></TBODY></TABLE> </form> <BR> <BR> </BODY></HTML>
qing.php
<?php $cookie_file = tempnam('./temp','cookie'); $login_url = 'http://218.61.108.163/ACTIONQUERYSTUDENTSCORE.APPPROCESS'; $post_fields = 'WebUserNO=stuid&Password=passwd&Agnomen=code&applicant=ACTIONQUERYGRADUATESCHOOLREPORTBYSELF'; $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); curl_exec($ch); curl_close($ch); $url='http://218.61.108.163/ACTIONQUERYGRADUATESCHOOLREPORTBYSELF.APPPROCESS'; $ch = curl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); $contents = curl_exec($ch); //正则表达式提取数据。 $match="|(<=<td>).*(?=</td>)|"; preg_match_all($match,$contents,$b); $abc = $b[0]; $abs = $b[1]; $abd = $b[1]; echo $abc; echo $abs; echo $abd; curl_close($ch); ?>
获取到成绩的界面
转自:http://www.cnblogs.com/ZM-Rid/p/3601513
相关问答
更多-
微信官网登陆[2022-06-03]
1、首先需要打开网页版微信官方网址:https://wx.qq.com/,会出现以下这个网页版微信二维码; 2、然后打开手机微信,开启二维码扫描(这个功能在微信界面的“朋友们---添加朋友---扫一扫”); 3、扫描网页版微信二维码,这个二维码只有在https://wx.qq.com/网页上扫描才有用,扫描成功后网页上会出现ok,手机上会有确认信息,需要手动确定; 4、在手机客户端点击确认后,在手机微信里会显示出正在使用微信网页版字样; 5、直接点击确认网页版正常登陆而且无须输入账号密码。 -
微信怎么只在计算机登陆[2022-03-25]
目前微信并没有电脑端强制手机端下线的功能。 只能手机先扫码登录电脑端,手机端再自己退出。 -
微信公众平台 java模拟登录[2022-10-07]
先用抓包软件抓下登录时的数据包,然后 分析他用的是什么协议,然后 根据他的协议来写自己的程序,不过这个是一个比较大的工作量大事。不比抢票软件简单 -
微信公众平台能使用Java开发吗[2022-09-14]
能使用的!微信 在安卓手机里可以使用,安装是用java 开发的,所以 可以用java开发 -
微信公众平台开发有哪些要注意的?[2022-10-26]
微信公众平台开发注意事项: 一、微信公众平台开发是指为微信公众号进行业务开发,为移动应用、PC端网站、公众号第三方平台(为各行各业公众号运营者提供服务)的开发,请前往微信开放平台接入。 二、在申请到认证公众号之前,你可以先通过测试号申请系统,快速申请一个接口测试号,立即开始接口测试开发。 三、在开发过程中,可以使用接口调试工具来在线调试某些接口。 四、每个接口都有每日接口调用频次限制,可以在公众平台官网-开发者中心处查看具体频次。 五、在开发出现问题时,可以通过接口调用的返回码,以及报警排查指引(在公众平台 ... -
微信公众平台如何修改登陆密码[2022-06-06]
打开微信公众平台,在登录界面右下角有个“无法登录?”的链接,点击进入。 选择自己的账号类型,按提示修改即可。 修改完后重新登录即可,这时候就是新密码了。 希望回答能给你带来帮助~ 如果满意,请采纳,如还有疑问,可继续追问! 您也可以向我们团队发出请求,会有更专业的人来为您解答! -
微信公众平台微网站开发流程是什么?[2023-09-21]
微网站开发模式教程: 第一步:申请消息接口 在公众平台网站的高级功能 – 开发模式页,点击“成为开发者”按钮,填写URL和Token,其中URL是开发者用来接收微信服务器数据的接口URL。Token可由开发者可以任意填写,用作生成签名。 第二步:验证URL有效性 开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数: 开发者通过检验signature对请求进行校验。若确认此次GET请求来自微信服务器,请原样返回 echostr参数内容,则接入生效,成为开发 ... -
不是仿,是直接登录到微信公众平台,但是没有通过他们的登录界面登录进去,而是用程序提交用户名密码登录进去,然后进行相关操作,往相关接口提交数据
-
微信公众平台服务号,同步关注人的微信信息到第三平台或者数据库[2022-01-06]
刚刚看错了 这个在原理上是可以实现的 但是电话号码除外 这个需要关注的人自己提供给公众号才行 -
微信公众平台的密码和微信的密码一样吗?[2023-07-24]
微信公众平台需要重新注册,账户是邮箱,密码需要重新设定 和微信不是一回事