星期二, 10月 03, 2006

[PHP] 用 curl 來抓網路上的資料(一)

CURL 是 Client URL Library 的縮寫, 他是 php 當作 client 的好用工具, 如果你需要用程式來抓人網站的資料來處理, 他是一個很方便的函式庫, PHP 4.0.2 之後的版本有支援, 如果你的 PHP 不能用可以去以下的網址 curl 下載套件安裝
要使用 curl, 首先要先啟始 curl:
$ch = curl_init("http://tw.yahoo.com");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://tw.yahoo.com");

接著要設定相關選項, 選項的部份相當的多, 詳細的資料可參考 www.php.net curl_setopt
我僅就我常用的說明一下:

如果你連的網站回傳是 xml 格式, 你將傳回的 xml 格式以 SAX 或 DOM 的方式, 將 CURLOPT_HEADER 設成 0, header 就不會回傳以方便後續處理
curl_setopt($ch, CURLOPT_HEADER, 0);

如果網站回傳的資料, 你需要做後續處理, 一般我們會將他存在一個字串, 這時你就需要用
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
最後真的開始連接網站時就可以用:
$result = curl_exec($ch);
將結果存在 $result 中了

如果你希望將連接網站的資料存在檔案中, 你需要先開一個檔案
$fp = fopen("test.html", "w");
再用:
curl_setopt($ch, CURLOPT_FILE, $fp);
指定將等下執行 curl_exec($ch); 的結果存進 $fp (即 test.html 裡)

最後當然一定要執行
curl_exec($ch);

$result = curl_exec($ch);

當然最後使用完了要關閉, 用:
curl_close($ch);

下次再介紹, 如果有參數要傳 (用 post 或 get ), curl 該如何做

標籤: ,

0 Comments:

張貼留言

<< Home