PHP使用CURL抓取頁面


cURL的基本原理

curl是利用URL語法在命令行方式下工作的開源文件傳輸工具,他能夠從互聯網上獲得各種各樣的網絡資源。簡單來說,curl就是抓取頁面的升級版。

<?php
 //1.初始化,創建一個新cURL資源
 $ch = curl_init(); 
//2.設置URL和相應的選項
 curl_setopt($ch, CURLOPT_URL, "http://www.baidu.com/");
 
curl_setopt($ch, CURLOPT_HEADER, 0); 
//3.抓取URL並把它傳遞給瀏覽器
 curl_exec($ch); 
//4.關閉cURL資源,並且釋放系統資源
 curl_close($ch); 
?>

  

cURL爬取頁面之爬取網頁信息並替換

<?php
$curlobj = curl_init();          // 初始化
curl_setopt($curlobj, CURLOPT_URL, "http://www.baidu.com");       // 設置訪問網頁的URL
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, true);         // 執行之后不直接打印出來
$output=curl_exec($curlobj);   // 執行
curl_close($curlobj);        // 關閉cURL
echo str_replace("百度","php",$output);
?>

  

cURL爬取頁面之獲取天氣

<?php
header("Content-Type:text/html;   charset=utf-8");
$data = 'theCityName=北京';
$curlobj = curl_init();
curl_setopt($curlobj, CURLOPT_URL, "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx/getWeatherbyCityName");
curl_setopt($curlobj, CURLOPT_USERAGENT, "user-agent:Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Firefox/24.0");
curl_setopt($curlobj, CURLOPT_HEADER, 0);          //啟用時會將頭文件的信息作為數據流輸出。這里不啟用
curl_setopt($curlobj, CURLOPT_RETURNTRANSFER, 1);  //如果成功只將結果返回,不自動輸出任何內容。如果失敗返回FALSE
curl_setopt($curlobj, CURLOPT_POST, 1);            //如果你想PHP去做一個正規的HTTP POST,設置這個選項為一個非零值。這個POST是普通的 application/x-www-from-urlencoded 類型,多數被HTML表單使用。
curl_setopt($curlobj, CURLOPT_POSTFIELDS, $data);  //需要POST的數據
curl_setopt($curlobj, CURLOPT_HTTPHEADER, array("application/x-www-form-urlencoded;   
                                                    charset=utf-8", "Content-length: ".strlen($data)));
$rtn = curl_exec($curlobj);
if(!curl_errno($curlobj)){
    // $info = curl_getinfo($curlobj);
    // print_r($info);
    echo $rtn;
} else {
    echo 'Curl error: ' . curl_error($curlobj);
}
curl_close($curlobj);
?>

  $data用於填寫位置。

后面的網址是開放的接口.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM