PHP中CURL技术模拟登陆抓取网站信息,用与微信公众平台成绩查询_PHP教程
伴随微信的红火,微信公众平台成为许多开发者的下一个目标。笔者本身对于这种新鲜事物没有如此多的吸引力。但是最近有朋友帮忙开发微信公众平台中一个成绩查询的功能。于是便在空余时间研究了一番。
主要的实现步骤是,通过PHP的CURL技术模拟登陆目标网站,通过登陆的用户,获取到用户的成绩信息,使用正则表达式对数据进行抓取和存储,使用HTML技术对数据进行重新弄排版。
微信公众平台的功能就是通过浏览的目的来实现成绩查询。整体的技术实现就在于PHP的CURL技术。下面就随便找了一个文件,获取成绩。具体代码如下。
<span <</span><span HTML</span><span ></span> <span <</span><span HEAD</span><span ><</span><span TITLE</span><span ></span>请您登录<span </</span><span TITLE</span><span ></span> <span <</span><span script </span><span language</span><span ="JavaScript"</span><span ></span> <span function</span><span Judge() { </span><span var</span><span WebUserNO</span><span =</span><span document.all[</span><span "</span><span WebUserNO</span><span "</span><span ].value; </span><span if</span><span (WebUserNO</span><span ==</span><span ""</span><span ) {alert(</span><span "</span><span 登录用户不能为空!</span><span "</span><span ); document.all[</span><span "</span><span WebUserNO</span><span "</span><span ] .focus(); </span><span return</span> <span false</span><span ; } } </span><span </</span><span script</span><span ></span> <span <</span><span META </span><span http-equiv</span><span =Content-Type </span><span content</span><span ="text/html; charset=gb2312"</span><span ></span> <span <</span><span STYLE </span><span type</span><span =text/css</span><span ></span><span TD </span><span {</span><span FONT-SIZE</span><span :</span><span 12px </span><span }</span><span p1 </span><span {</span><span FONT-SIZE</span><span :</span><span 12px </span><span }</span><span INPUT </span><span {</span><span FONT-SIZE</span><span :</span><span 12px </span><span }</span><span p2 </span><span {</span><span FONT-SIZE</span><span :</span><span 12px</span><span ;</span><span LINE-HEIGHT</span><span :</span><span 14pt </span><span }</span><span p3 </span><span {</span><span FONT-SIZE</span><span :</span><span 14px </span><span }</span><span p4 </span><span {</span><span FONT-SIZE</span><span :</span><span 14px</span><span ;</span><span LINE-HEIGHT</span><span :</span><span 14pt </span><span }</span><span p5 </span><span {</span><span FONT-SIZE</span><span :</span><span 16px </span><span }</span><span p6 </span><span {</span><span FONT-SIZE</span><span :</span><span 14px</span><span ;</span><span LINE-HEIGHT</span><span :</span><span 180% </span><span }</span><span p7 </span><span {</span><span FONT-SIZE</span><span :</span><span 12px</span><span ;</span><span COLOR</span><span :</span><span #136792</span><span ;</span><span LINE-HEIGHT</span><span :</span><span 160% </span><span }</span><span BIG </span><span {</span><span FONT-SIZE</span><span :</span><span 18px </span><span }</span><span A:link </span><span {</span><span COLOR</span><span :</span><span #0000ff </span><span }</span><span A:visited </span><span {</span><span COLOR</span><span :</span><span #0000ff </span><span }</span><span A:hover </span><span {</span><span COLOR</span><span :</span><span #ff0000 </span><span }</span><span hand </span><span {</span><span CURSOR</span><span :</span><span hand</span><span ;</span><span BACKGROUND-COLOR</span><span :</span><span rgb(208,207,192) </span><span }</span> <span </</span><span STYLE</span><span ></span> <span <!--</span><span style end</span><span --></span> <span <</span><span META </span><span content</span><span ="MSHTML 6.00.2600.0"</span><span name</span><span =GENERATOR</span><span ></</span><span HEAD</span><span ></span> <span <</span><span BODY </span><span bgColor</span><span =#ffffff </span><span topMargin</span><span =7 </span><span marginheight</span><span ="0"</span><span marginwidth</span><span ="25"</span><span ></span> <span <</span><span form </span><span name</span><span ="LoginForm"</span><span method</span><span ="post"</span><span action</span><span ="qing.php"</span><span ></span> <span <</span><span TABLE </span><span cellSpacing</span><span =0 </span><span cellPadding</span><span =0 </span><span width</span><span ="100%"</span><span border</span><span =0</span><span ></span> <span <</span><span TBODY</span><span ></span> <span <</span><span TR</span><span ></span> <span <</span><span TD </span><span bgColor</span><span =#e6e6e6 </span><span height</span><span =20</span><span ></</span><span TD</span><span ></span> <span <</span><span TD </span><span align</span><span =right </span><span bgColor</span><span =#e6e6e6</span><span ></span><span </span><span </</span><span TD</span><span ></span> <span </</span><span TR</span><span ></</span><span TBODY</span><span ></</span><span TABLE</span><span ><</span><span BR</span><span ></span> <span <</span><span TABLE </span><span cellSpacing</span><span =0 </span><span cellPadding</span><span =1 </span><span width</span><span =492 </span><span align</span><span =center </span><span border</span><span =0</span><span ></span> <span <</span><span TBODY</span><span ></span> <span <</span><span TR</span><span ></span> <span <</span><span TD</span><span ></span> <span <</span><span TABLE </span><span borderColor</span><span =#c1eaff </span><span cellSpacing</span><span =0 </span><span cellPadding</span><span =20 </span><span width</span><span =474 </span><span align</span><span =center </span><span border</span><span =1</span><span ></span> <span <</span><span TBODY</span><span ></span> <span <</span><span TR</span><span ></span> <span <</span><span TD</span><span ><</span><span TABLE </span><span width</span><span =283 </span><span height</span><span ="100"</span><span border</span><span =0 </span><span align</span><span =center </span><span cellPadding</span><span =0 </span><span cellSpacing</span><span =0</span><span ></span> <span <</span><span tr</span><span ></span> <span <</span><span td </span><span width</span><span ="50"</span><span rowspan</span><span ="4"</span><span ></span><span </span><span </</span><span td</span><span ></span> <span <</span><span td </span><span align</span><span ="left"</span><span ></span> <span </</span><span td</span><span ></span> <span </</span><span tr</span><span ></span> <span <</span><span tr</span><span ></span> <span <</span><span td </span><span height</span><span ="22"</span><span align</span><span ="left"</span><span ></span><span 用户名: </span><span <</span><span input </span><span name</span><span ="WebUserNO"</span><span type</span><span ="text"</span><span id</span><span ="WebUserNO"</span><span size</span><span ="12"</span><span ></</span><span td</span><span ></span> <span </</span><span tr</span><span ></span> <span <</span><span tr</span><span ></span> <span <</span><span td </span><span height</span><span ="22"</span><span align</span><span ="left"</span><span ></span>密<span </span><span 码: </span><span <</span><span input </span><span name</span><span ="Password"</span><span type</span><span ="password"</span><span id</span><span ="Password"</span><span size</span><span ="12"</span><span ></</span><span td</span><span ></span> <span </</span><span tr</span><span ></span> <span <</span><span tr</span><span ></span> <span <</span><span td </span><span height</span><span ="22"</span><span align</span><span ="left"</span><span valign</span><span ="middle"</span><span ><</span><span p</span><span ></span><span 附加码: </span><span <</span><span input </span><span name</span><span ="Agnomen"</span><span type</span><span ="text"</span><span id</span><span ="Agnomen"</span><span size</span><span ="12"</span><span ></span> <span </</span><span p</span><span ></span> <span <</span><span p</span><span ><</span><span A </span><span href</span><span ="User_JSP/FuJiaMa.htm"</span><span target</span><span ="_blank"</span> <span ><</span><span img </span><span src</span><span ="http://218.61.108.163/ACTIONVALIDATERANDOMPICTURE.APPPROCESS"</span><span width</span><span ="60"</span><span height</span><span ="20"</span><span alt</span><span ="验证码说明"</span><span border</span><span ="0"</span><span ></</span><span a</span><span ></</span><span p</span><span ></</span><span td</span><span ></span> <span </</span><span tr</span><span ></span> <span <</span><span tr </span><span align</span><span ="center"</span><span ></span> <span <</span><span td </span><span colspan</span><span ="2"</span><span ><</span><span input </span><span type</span><span ="image"</span><span border</span><span ="0"</span><span name</span><span ="submit"</span><span src</span><span ="http://218.61.108.163/User_JSP/images/Logon.gif"</span><span width</span><span ="37"</span><span height</span><span ="18"</span><span onClick</span><span ="javascript:return Judge();"</span><span ></span> <span </</span><span td</span><span ></span> <span </</span><span tr</span><span ></span> <span <</span><span tr</span><span ></span> <span <</span><span td </span><span colspan</span><span ="2"</span><span ><</span><span div </span><span align</span><span ="center"</span><span ><</span><span input </span><span name</span><span ="applicant"</span><span type</span><span ="hidden"</span><span value</span><span ="ACTIONQUERYSTUDENTSCORE"</span><span ></</span><span div</span><span ></</span><span td</span><span ></span> <span </</span><span tr</span><span ></span> <span </</span><span TABLE</span><span ></span> <span <</span><span br</span><span ></span> <span </</span><span TD</span><span ></span> <span </</span><span TR</span><span ></span> <span </</span><span TABLE</span><span ></</span><span TD</span><span ></</span><span TR</span><span ></</span><span TBODY</span><span ></</span><span TABLE</span><span ></span> <span </</span><span form</span><span ></span> <span <</span><span BR</span><span ></span> <span <</span><span BR</span><span ></span> <span </</span><span BODY</span><span ></</span><span HTML</span><span ></span>
qing.php
<?<span php </span><span $cookie_file</span> = <span tempnam</span>('./temp','cookie'<span ); </span><span $login_url</span> = 'http://218.61.108.163/ACTIONQUERYSTUDENTSCORE.APPPROCESS'<span ; </span><span $post_fields</span> = 'WebUserNO=stuid&Password=passwd&Agnomen=code&applicant=ACTIONQUERYGRADUATESCHOOLREPORTBYSELF'<span ; </span><span $ch</span> = curl_init(<span $login_url</span><span ); curl_setopt(</span><span $ch</span>, CURLOPT_HEADER, 0<span ); curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, 1<span ); curl_setopt(</span><span $ch</span>, CURLOPT_POST, 1<span ); curl_setopt(</span><span $ch</span>, CURLOPT_COOKIEJAR, <span $cookie_file</span><span ); curl_setopt(</span><span $ch</span>, CURLOPT_POSTFIELDS, <span $post_fields</span><span ); curl_exec(</span><span $ch</span><span ); curl_close(</span><span $ch</span><span ); </span><span $url</span>='http://218.61.108.163/ACTIONQUERYGRADUATESCHOOLREPORTBYSELF.APPPROCESS'<span ; </span><span $ch</span> = curl_init(<span $url</span><span ); curl_setopt(</span><span $ch</span>, CURLOPT_HEADER, 0<span ); curl_setopt(</span><span $ch</span>, CURLOPT_RETURNTRANSFER, 0<span ); curl_setopt(</span><span $ch</span>, CURLOPT_COOKIEFILE, <span $cookie_file</span><span ); </span><span $contents</span> = curl_exec(<span $ch</span><span ); </span><span //</span><span 正则表达式提取数据。</span> <span $match</span>="|(<=<td>).*(?=</td>)|"<span ; </span><span preg_match_all</span>(<span $match</span>,<span $contents</span>,<span $b</span><span ); </span><span $abc</span> = <span $b</span>[0<span ]; </span><span $abs</span> = <span $b</span>[1<span ]; </span><span $abd</span> = <span $b</span>[1<span ]; </span><span echo</span> <span $abc</span><span ; </span><span echo</span> <span $abs</span><span ; </span><span echo</span> <span $abd</span><span ; curl_close(</span><span $ch</span><span ); </span>?>
获取到成绩的界面

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











Vue.js와 ASP.NET의 결합은 웹 애플리케이션의 성능 최적화와 확장을 위한 팁과 제안을 제공합니다. 웹 애플리케이션의 급속한 발전으로 인해 성능 최적화는 개발자에게 필수적이고 중요한 작업이 되었습니다. 인기 있는 프런트 엔드 프레임워크인 Vue.js를 ASP.NET과 결합하면 더 나은 성능 최적화 및 확장을 달성하는 데 도움이 될 수 있습니다. 이 문서에서는 몇 가지 팁과 제안 사항을 소개하고 몇 가지 코드 예제를 제공합니다. 1. HTTP 요청 감소 HTTP 요청 수는 웹 애플리케이션의 로딩 속도에 직접적인 영향을 미칩니다. 통과하다

ASP.NET 프로그램에서 MySQL 연결 풀을 올바르게 사용하고 최적화하는 방법은 무엇입니까? 소개: MySQL은 고성능, 안정성 및 사용 용이성을 특징으로 널리 사용되는 데이터베이스 관리 시스템입니다. ASP.NET 개발에서는 데이터 저장을 위해 MySQL 데이터베이스를 사용하는 것이 일반적인 요구 사항입니다. 데이터베이스 연결의 효율성과 성능을 향상시키기 위해서는 MySQL 연결 풀을 올바르게 사용하고 최적화해야 합니다. 이 기사에서는 ASP.NET 프로그램에서 MySQL 연결 풀을 올바르게 사용하고 최적화하는 방법을 소개합니다.

번역기 | 검토자: Chen Jun | Chonglou 1990년대에 사람들이 소프트웨어 프로그래밍을 언급할 때 이는 일반적으로 편집기를 선택하고 코드를 CVS 또는 SVN 코드 베이스로 확인한 다음 코드를 실행 파일로 컴파일하는 것을 의미했습니다. Eclipse 및 Visual Studio와 같은 해당 통합 개발 환경(IDE)은 프로그래밍, 개발, 문서화, 구성, 테스트, 배포 및 기타 단계를 완전한 소프트웨어 개발 수명 주기(SDLC)에 통합하여 개발자의 작업 효율성을 향상시킬 수 있습니다. 최근 몇 년 동안 널리 사용되는 클라우드 컴퓨팅 및 DevSecOps 자동화 도구는 개발자의 포괄적인 역량을 향상시켜 더 많은 기업이 소프트웨어 애플리케이션을 보다 쉽게 개발, 배포 및 유지 관리할 수 있게 되었습니다. 오늘날 생성적 AI는 차세대 개발입니다.

ASP.NET 프로그램에서 MySQL에 다시 연결하는 방법은 무엇입니까? ASP.NET 개발에서는 MySQL 데이터베이스를 사용하는 것이 매우 일반적입니다. 그러나 네트워크나 데이터베이스 서버 문제로 인해 데이터베이스 연결이 중단되거나 타임아웃되는 경우가 있습니다. 이 경우, 프로그램의 안정성과 신뢰성을 보장하기 위해 연결이 끊어진 후 연결을 다시 설정해야 합니다. 이 기사에서는 ASP.NET 프로그램에서 MySQL 연결을 다시 연결하는 방법을 소개합니다. 필요한 네임스페이스를 먼저 참조하려면 코드 파일의 헤드에서 참조하세요.

Vue.js와 ASP.NET의 결합을 통해 엔터프라이즈급 애플리케이션의 개발 및 배포가 가능해졌습니다. 오늘날 빠르게 발전하는 인터넷 기술 분야에서 엔터프라이즈급 애플리케이션의 개발 및 배포가 점점 더 중요해지고 있습니다. Vue.js와 ASP.NET은 프런트엔드 및 백엔드 개발에 널리 사용되는 두 가지 기술을 결합하면 엔터프라이즈 수준 애플리케이션의 개발 및 배포에 많은 이점을 가져올 수 있습니다. 이 기사에서는 Vue.js 및 ASP.NET을 사용하여 코드 예제를 통해 엔터프라이즈 수준 애플리케이션을 개발하고 배포하는 방법을 소개합니다. 먼저, 설치해야 합니다.

ASP.NET 프로그램에서 MySQL 연결 풀을 올바르게 구성하고 사용하는 방법은 무엇입니까? 인터넷의 발달과 데이터 양의 증가로 인해 데이터베이스 접속 및 연결에 대한 수요도 증가하고 있습니다. 데이터베이스의 성능과 안정성을 향상시키기 위해서는 커넥션 풀링(Connection Pooling)이 필수적인 기술이 되었습니다. 이 기사에서는 ASP.NET 프로그램에서 MySQL 연결 풀을 올바르게 구성하고 사용하여 데이터베이스의 효율성과 응답 속도를 향상시키는 방법을 주로 소개합니다. 1. 커넥션 풀링의 개념과 기능 커넥션 풀링은 데이터베이스 커넥션을 재사용하는 기술이다.

ASP.NET의 기본 제공 개체에는 "요청", "응답", "세션", "서버", "응용 프로그램", "HttpContext", "Cache", "Trace", "Cookie" 및 "Server.MapPath": 1. 클라이언트가 발행한 HTTP 요청을 나타내는 요청 2. 응답: 웹 서버가 클라이언트에 반환한 HTTP 응답을 나타냅니다. 클라이언트 등

Linux에서 ASP.NET 개발을 위해 Visual Studio를 사용하기 위한 권장 구성 개요: 오픈 소스 소프트웨어의 개발과 Linux 운영 체제의 인기로 인해 점점 더 많은 개발자가 Linux에서 ASP.NET을 개발하기 시작하고 있습니다. 강력한 개발 도구인 Visual Studio는 항상 Windows 플랫폼에서 지배적인 위치를 차지해 왔습니다. 이 문서에서는 Linux에서 ASP.NE용 VisualStudio를 구성하는 방법을 소개합니다.
