合法優良搬家公司
價格透明,合約保障真安心
信義拆除專業居家清潔
免費到府估價,清潔養護馬上搞定

首頁  •  tw 論壇 • 程式設計討論     • 

[php] 利用 curl 來抓取網頁結果

房東:小強
發表時間:2012-10-21
[檢舉]


如果要用php來抓取網頁,一般人最常想到的就是「fopen」這個函式了。但現在有了更強大的函式,「curl」,至於這個函式怎麼用呢?就往下看吧!



如使用mysql一樣,首先,我們必須先建立一個「curl」的連線,也因此,必須使用到「$ch = curl_init()」這個函式。而為了怕建立連線忘了關閉。因此,必須先寫好關閉的函式,「curl_close($ch)」。



接下來,你可以設定他截取網頁的選項,一般來說常用的有「CURLOPT_RETURNTRANSFER」、「CURLOPT_URL」、「CURLOPT_HEADER」、「CURLOPT_FOLLOWLOCATION」、「CURLOPT_USERAGENT」這幾個選項。而這幾個選項分別代表「將結果回傳成字串」、「設定截取網址」、 「是否截取header的資訊」、「是否抓取轉址」及「瀏覽器的user agent」。最後,再執行「curl_exec($ch)」以取出結果就可以了。



而以抓取yahoo為例,若我們要偽裝成google bot去抓取,那麼我們可以寫成下列的樣子。


$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_URL, "www.yahoo.com.tw");
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_USERAGENT, "Google Bot");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$output = curl_exec($ch);
curl_close($ch);
echo $output;



當然,你也可以將選項們設定一個陣列,以增加設定時的閱\讀度。這時就得動用「curl_setopt_array()」這個函式了。



而改寫上列程式如下:


$ch = curl_init();
$options = array(CURLOPT_URL => \'www.yahoo.com.tw\',
CURLOPT_HEADER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_USERAGENT => "Google Bot",
CURLOPT_FOLLOWLOCATION => true
);
curl_setopt_array($ch, $options);
$output = curl_exec($ch);
curl_close($ch);
echo $output;




  • 贊助網站       

    廣利不動產-新板特區指名度最高、值得您信賴的好房仲
    您的托付,廣利用心為您服務
    廣利不動產-板橋在地生根最實在--新板特區指名度最高、值得您信賴的好房仲
    完整房訊,房屋、店面熱門精選物件,廣利不動產 優質仲介,房屋租賃、買賣資訊透明,交易真安心!



  •  共 0 人回應

    姓名:
    佈告內容: