以php實現正方教務系統的模擬登陸
第一次用php實現模擬登陸真的是弄了好久,還挺好玩的就是,都是自己一點一點探索的收穫還是慢慢的。到現在還有一點沒弄清楚的就是為什麼不用提交驗證碼資訊也能登陸,感覺可能是bug吧!
想要實現模擬登陸,首先要打開瀏覽器登入你想要模擬登陸的網站然後按F12去找到模擬登陸要提交的數據,像正方還有個隱藏的__VIEWSTATE的變數需要用正則表達式匹配找到這個變數的值,登陸進去了你就會在頁面發現你的個人資訊並在程式碼中註意保存你的cookie以便於跳到另一個想要查詢的頁面,我的程式碼就是查詢成績的方法,有興趣的可以與我交流一起探討!
<span style="font-size:14px;"><?php $url = "http://jw.jxust.edu.cn"; $username = ''; //设置自己的账号 $password = ''; // 设置自己的密码 $ch1 = curl_init(); curl_setopt($ch1, CURLOPT_URL, $url); curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($ch1); curl_close($ch1); $pattern = '/<input type="hidden" name="__VIEWSTATE" value="(.*)"/'; //正则表达式匹配__VIEWSTATE preg_match_all($pattern, $data, $matches); $result = $matches[1][0]; //print_r($result); $post1 = array( //必要的提交信息 '__VIEWSTATE' => $result, 'txtUserName' => $username, 'TextBox2' => $password, 'RadioButtonList1' => iconv('utf-8', 'gb2312', '学生'), 'Button1' => '' ); $filecookie = dirname(__FILE__)."/cookie"; $ch2 = curl_init(); curl_setopt($ch2, CURLOPT_URL, $url); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch2, CURLOPT_POST, 1); curl_setopt($ch2, CURLOPT_POSTFIELDS, http_build_query($post1)); curl_setopt($ch2, CURLOPT_COOKIEJAR, $filecookie); //保存登陆的cookie信息到filecookie文件中 curl_exec($ch2); curl_close($ch2); //模拟登录成绩页面获取__VIEWSTATE $ch3 = curl_init(); curl_setopt($ch3, CURLOPT_URL, "http://jw.jxust.edu.cn/xscj_gc.aspx?xh=$username&gnmkdm=N121605"); curl_setopt($ch3, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch3, CURLOPT_COOKIEFILE, $filecookie); curl_setopt($ch3, CURLOPT_REFERER, "http://jw.jxust.edu.cn"); $data = curl_exec($ch3); curl_close($ch3); $pattern = '/<input type="hidden" name="__VIEWSTATE" value="(.*)"/'; /* 又要获取__VIEWSTATE, 注意每个模块的的__VIEWSTATE都不一样 */ preg_match_all($pattern, $data, $matches); $cj__VIEWSTATE = $matches[1][0]; //模拟登陆获取成绩信息 $ch4 = curl_init(); curl_setopt($ch4, CURLOPT_URL, "http://jw.jxust.edu.cn/xscj_gc.aspx?xh=$username&gnmkdm=N121605"); $post2 = array( //提交要查找的信息的数据 '__VIEWSTATE' => $cj__VIEWSTATE, 'ddlXN' => '', 'ddlXQ' => '', 'Button1' => iconv('utf-8', 'gb2312', '按学期查询') ); curl_setopt($ch4, CURLOPT_RETURNTRANSFER, 0); curl_setopt($ch4, CURLOPT_FOLLOWLOCATION, 1); curl_setopt($ch4, CURLOPT_COOKIEFILE, $filecookie); curl_setopt($ch4, CURLOPT_POST, 1); curl_setopt($ch4, CURLOPT_POSTFIELDS, $post2); curl_setopt($ch4, CURLOPT_REFERER, "http://jw.jxust.edu.cn"); $data = curl_exec($ch4); //preg_match_all($pattern, $data, $matches); curl_close($ch4); ?></span>
以上就介紹了用php實現正方教務系統的模擬登陸,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

curl和Pythonrequests都是發送HTTP請求的強大工具。雖然curl是一種命令列工具,可讓您直接從終端機發送請求,但Python的請求庫提供了一種更具程式化的方式來從Python程式碼發送請求。將curl轉換為Pythonrequestscurl指令的基本語法如下所示:curl[OPTIONS]URL將curl指令轉換為Python請求時,我們需要將選項和URL轉換為Python程式碼。這是一個範例curlPOST指令:curl-XPOSThttps://example.com/api

PHP8.1發布:引入curl多個請求並發處理近日,PHP官方發布了最新版本的PHP8.1,其中引入了一個重要的特性:curl多個請求並發處理。這個新功能為開發者提供了一個更有效率和靈活的方式來處理多個HTTP請求,大大提升了效能和使用者體驗。在以往的版本中,處理多個請求往往需要透過建立多個curl資源,並使用循環來分別發送和接收資料。這種方式雖然能夠實現目

從頭到尾:如何使用php擴充cURL進行HTTP請求引言:在Web開發中,經常需要與第三方API或其他遠端伺服器進行通訊。而使用cURL進行HTTP請求是一種常見且強大的方式。本文將介紹如何使用php擴充cURL來執行HTTP請求,並提供一些實用的程式碼範例。一、準備工作首先,請確保php已安裝cURL擴充。可以在命令列執行php-m|grepcurl查

在Linux下更新curl版本,您可以按照以下步驟進行操作:檢查目前curl版本:首先,您需要確定目前系統中安裝的curl版本。開啟終端,並執行以下指令:curl--version該指令將顯示目前curl的版本資訊。確認可用的curl版本:在更新curl之前,您需要確定可用的最新版本。您可以造訪curl的官方網站(curl.haxx.se)或相關的軟體來源,尋找最新版本的curl。下載curl原始碼:使用curl或瀏覽器,下載您選擇的curl版本的原始碼檔案(通常為.tar.gz或.tar.bz2

PHPCurl中如何處理網頁的301重定向?使用PHPCurl發送網路請求時,常會遇到網頁回傳的301狀態碼,表示頁面被永久重定向。為了正確處理這種情況,我們需要在Curl請求中加入一些特定的選項和處理邏輯。以下將詳細介紹在PHPCurl中如何處理網頁的301重定向,並提供具體的程式碼範例。 301重定向處理原理301重定向是指伺服器回傳了一個30

在linux中,curl是一個非常實用的、用來與伺服器之間傳輸資料的工具,是一個利用URL規則在命令列下工作的檔案傳輸工具;它支援檔案的上傳和下載,是綜合傳輸工具。 curl提供了一大堆非常有用的功能,包括代理存取、使用者認證、ftp上傳下載、HTTP POST、SSL連線、cookie支援、斷點續傳等等。

php curl設定cookie的方法:1、建立PHP範例檔;2、透過「curl_setopt」函數設定cURL傳輸選項;3、在CURL中傳遞cookie即可。

PHP中的Curl是一個強大的工具,用於與不同的伺服器進行通訊。在實際應用中,經常會遇到301跳轉的情況,即伺服器會重定向請求。本文將深入探討PHPCurl中的301跳轉機制,並提供具體的程式碼範例,幫助讀者更好地理解並應用該功能。什麼是301跳轉301跳轉是伺服器端發出的一種重定向指令,意味著所要求的資源已經被永久移動到另一個位置。當瀏覽器或客戶端發送請求
