PHP透過CURL模擬登入並取得數據

不言
發布: 2023-03-23 07:00:02
原創
1600 人瀏覽過


cURL 是一個功能強大的PHP庫,使用PHP的cURL庫可以簡單和有效地抓取網頁並採集內容,設定cookie完成模擬登入網頁,curl提供了豐富的函數,開發者可以從PHP手冊中獲取更多關於cURL資訊。



#


/*透過CURL模擬登入並取得資料
有些網站需要權限認證,必須登入網站後,才能有效地抓取網頁並收集內容,
這就需要curl來設定cookie完成模擬登入網頁,php的curl在抓取網頁內容方
面效率是比較高的,而且支援多線程,而file_get_contents()效率就要稍低
一些。模擬登入的程式碼如下:
*/
function login_post($url, $cookie, $post){








## $ch = curl_init(); //初始化curl模組
curl_setopt($ch, CURLOPT_URL, $url); //登入提交的位址
#curl_setopt($ ch, CURLOPT_HEADER, 0); //是否顯示頭資訊
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0); //是否自動顯示傳回的資訊#########curl_setopt##curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); //設定cookie訊息保存在指定的資料夾中#########curl_setopt($ch, CURLOPT_POST, 1); //以POST方式提交### ######curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post));//要執行的資訊#########curl_exec($ch); //執行CURL####### ####curl_close($ch);#########}##########/*#######上例中宣告的函數login_post(),需要提供一個url位址,一個保存cookie文
件,以及post的資料(使用者名稱和密碼等資訊),注意php自帶的http_build_query()
函數可以將數組轉換成相連接的字串,如果透過該函數登入成功後,我們要獲取
登入成功個頁面信息。宣告函數的程式碼如下:
*/
function get_content($url, $cookie){
$ch = curl_init(); //初始化curl模組
curl_setopt($ch, CURLOPT_URL, $url); //登入提交的位址
curl_setopt($ch, CURLOPT_HEADER , 0); //是否顯示頭訊息
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //是否自動顯示傳回的訊息
curl_setopt($ch , CURLOPT_COOKIEJAR, $cookie);//設定cookie訊息保存在指定的資料夾中
$rs = curl_exec($ch); //執行curl轉去頁面內容
#curl_close($ch);
return $rs; //傳回字串
}
##/*
get_content()中用curlopt_cookiefile可以讀取到登入保存的cookie信
息最後講頁面內容返回.我們的目的是獲取到模擬登入後的信息,也就是
只有正常登入成功後菜能取得的有用的信息,下面舉例代碼
*/
$post = array('_username' => 'g@ydma.cn',
'_password' => '123456',
'_submit' => ; '登入'
);
$url = "http://www.ydma.cn/login/check"; //登入位址, 和原網站一致
$cookie = dirname(__FILE__).'/cookie_ydma.txt'; //設定cookie已儲存的路徑
$url2 = "http:// www.ydma.cn/course/59"; //登入後要取得資訊的位址

#login_post($url, $cookie, $post); //呼叫模擬登入
$content = get_content($url2, $cookie); //登入後,呼叫get_content()函數取得登入後指定的頁面資訊

##@ unlik($cookie); //刪除cookie檔案
file_put_contents('save.txt', $content); //儲存抓取的頁面內容

相關推薦:

php取得URL中帶#號等特殊符號參數的方法

##

以上是PHP透過CURL模擬登入並取得數據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!