国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - php curl 模擬登錄并獲取數據實例詳解

php curl 模擬登錄并獲取數據實例詳解

2021-04-09 15:51PHP教程網 PHP教程

cURL 是一個功能強大的PHP庫,使用PHP的cURL庫可以簡單和有效地抓取網頁并采集內容,設置cookie完成模擬登錄網頁,curl提供了豐富的函數,開發者可以從PHP手冊中獲取更多關于cURL信息。本文以模擬登錄開源中國(oschina)為例,需要的朋

PHP的curl()在抓取網頁的效率方面是比較高的,而且支持多線程,而file_get_contents()效率就要稍低些,當然,使用curl時需要開啟下curl擴展。

代碼實戰

先來看登錄部分的代碼:

php" id="highlighter_771832">
?
1
2
3
4
5
6
7
8
9
10
11
12
function login_post($url, $cookie, $post) {
  $curl = curl_init();//初始化curl模塊
  curl_setopt($curl, CURLOPT_URL, $url);//登錄提交的地址
  curl_setopt($curl, CURLOPT_HEADER, 0);//是否顯示頭信息
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自動顯示返回的信息
  curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //設置Cookie信息保存在指定的文件中
  curl_setopt($curl, CURLOPT_POST, 1);//post方式提交
  curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的信息
  curl_exec($curl);//執行cURL
  curl_close($curl);//關閉cURL資源,并且釋放系統資源
}

函數login_post()首先初始化curl_init(),然后使用curl_setopt()設置相關選項信息,包括要提交的url地址,保存的cookie文件,post的數據(用戶名和密碼等信息),是否返回信息等等,然后curl_exec執行curl,最后curl_close()釋放資源。注意PHP自帶的http_build_query()可以將數組轉換成相連接的字符串。

接下來如果登錄成功后,我們要獲取登錄成功后的頁面信息。

?
1
2
3
4
5
6
7
8
9
10
11
//登錄成功后獲取數據
function get_content($url, $cookie) {
  $ch = curl_init();
  curl_setopt($ch, CURLOPT_URL, $url);
  curl_setopt($ch, CURLOPT_HEADER, 0);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //讀取cookie
  $rs = curl_exec($ch); //執行cURL抓取頁面內容
  curl_close($ch);
  return $rs;
}

函數get_content()中也是先初始化curl,然后設置相關選項,執行curl,釋放資源。其中我們設置CURLOPT_RETURNTRANSFER為1即自動返回信息,而CURLOPT_COOKIEFILE可以讀取到登錄時保存的cookie信息,最后將頁面內容返回。

我們的最終目的是要獲取到模擬登錄后的信息,也就是只有正常登錄成功后才能獲取的有用信息。接下來我們以登錄開源中國的移動版為例,看看如何抓取到登錄成功后的信息。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
//設置post的數據
$post = array (
  'email' => 'oschina賬戶',
  'pwd' => 'oschina密碼',
  'goto_page' => '/my',
  'error_page' => '/login',
  'save_login' => '1',
  'submit' => '現在登錄'
);
 //登錄地址 $url = "http://m.oschina.net/action/user/login"; //設置cookie保存路徑 $cookie = dirname(__FILE__) . '/cookie_oschina.txt'; //登錄后要獲取信息的地址 $url2 = "http://m.oschina.net/my"; //模擬登錄
login_post($url, $cookie, $post); //獲取登錄頁的信息 $content = get_content($url2, $cookie); //刪除cookie文件
@ unlink($cookie); //匹配頁面信息 $preg = "/<td class='portrait'>(.*)<\/td>/i";
preg_match_all($preg, $content, $arr); $str = $arr[1][0]; //輸出內容 echo $str;

使用總結

1、初始化curl;

2、使用curl_setopt設置目標url,和其他選項;

3、curl_exec,執行curl;

4、執行后,關閉curl;

5、輸出數據。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产日产精品一区二区三区四区 | 丁香综合| 韩国毛片在线观看 | 日韩精品一区二区三区在线观看视频网站 | 午夜欧美 | 欧美一区永久视频免费观看 | 午夜影剧院 | 永久免费av片在线观看全网站 | 欧美激情免费 | 香蕉久久夜色精品国产使用方法 | 久久久久久99 | 国产成人精品午夜视频' | 亚洲欧洲精品成人久久奇米网 | 国产99久久 | 亚洲精品在线播放 | 丝袜天堂| 色婷婷综合网 | 狠狠艹夜夜艹 | 一区二区三区在线免费观看 | 久久精品青青大伊人av | 国产精品高潮呻吟久久av野狼 | 亚洲精品中字 | 久久久国产一区 | 久久九精品 | 精品久| 午夜视频导航 | 亚洲97| 国产色秀视频在线观看 | h色视频在线观看 | 国产精品久久久久久久 | 国产精品久久久久久久久 | 香蕉久久久久久 | 亚洲免费一区 | 亚洲欧美综合精品久久成人 | 伊人久久综合影院 | 91高清在线 | 国产精品亚洲第一区在线暖暖韩国 | 91精品国产91久久久久久吃药 | 免费国产一区 | 综合伊人久久 | 人人做人人澡人人爽欧美 |