php獲取網頁內容的三種方法

知末隨未發表於2018-10-17
3種利用php獲得網頁原始碼抓取網頁內容的方法,我們可以根據實際需要選用。
1、使用file_get_contents獲得網頁原始碼
這個方法最常用,只需要兩行程式碼即可,非常簡單方便。
參考程式碼:
<?php
$fh= file_get_contents('http://www.webkaka.com/');
echo $fh;
?>
 
2、使用fopen獲得網頁原始碼
這個方法用的人也不少,不過程式碼有點多。
參考程式碼:
<?php
$fh = fopen('http://www.webkaka.com/', 'r');
if($fh){
    while(!feof($fh)) {
        echo fgets($fh);
    }
}
?>
 
3、使用curl獲得網頁原始碼
 
使用curl獲得網頁原始碼的做法,往往是需要更高要求的人使用,例如當你需要在抓取網頁內容的同時,得到網頁header資訊,還有ENCODING編碼的使用,USERAGENT的使用等等。
參考程式碼一:
<?php
// 建立一個新cURL資源
$ch = curl_init();
// 設定URL和相應的選項
curl_setopt($ch, CURLOPT_URL, "http://www.webkaka.com/");
curl_setopt($ch, CURLOPT_HEADER, false);
// 抓取URL並把它傳遞給瀏覽器
$data = curl_exec($ch);
echo $data;
//關閉cURL資源,並且釋放系統資源
curl_close($ch);
?>
 
參考程式碼二:
<?php
$szUrl = "http://www.webkaka.com/";
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $szUrl);
curl_setopt($curl, CURLOPT_HEADER, 0);  //0表示不輸出Header,1表示輸出
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl); 
echo $data;
//echo curl_errno($curl); //返回0時表示程式執行成功 
exit();
?>

 

相關文章