设为首页 收藏本站
查看: 617|回复: 0

[经验分享] PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询

[复制链接]

尚未签到

发表于 2015-8-27 11:48:30 | 显示全部楼层 |阅读模式
  伴随微信的红火,微信公众平台成为许多开发者的下一个目标。笔者本身对于这种新鲜事物没有如此多的吸引力。但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能。于是便在空余时间研究了一番。
  主要的实现步骤是,通过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>&nbsp;</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">&nbsp;</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">密&nbsp;&nbsp;码:
<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" > DSC0001.jpg </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);
?>
  
获取到成绩的界面
DSC0000.jpg
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-104984-1-1.html 上篇帖子: 高级PHP应用程序漏洞审核技术(笔记) 下篇帖子: yii采用原始php文件上传方法上传文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表