好一個抓爬仔 PHP cURL 現在好流行 “自己的 OO 自己 O” 前次的會議中,看到傳播學院的學生實實在在的貫徹了這個理論,“自己的 網頁 自己 爬 ”該學生由於不想一頁一頁的存需要的網頁,自己寫了一個小爬蟲來爬這些網頁的資料存成 CSV 檔。只能在心裡說:同學,留口飯給我們吃啦! 對於爬資料,PHP 裡面除了使用 fopen 的方式抓取網頁,還有一個厲害的抓爬仔函式庫 cURL (client URL) 。這個函式庫支援 libcurl,允許我們使用來與不同類型的 Server 做溝通。在 ubuntu 下預設是沒有安裝這個套件,可透過 apt-get 來安裝。 $ sudo apt -get install php5 -curl cURL 函式 使用 PHP cURL 的方法很簡單,只要初始化、設定、執行、關閉四個步驟就好,活用和複雜的部分是在 設定 這個步驟裡的參數設定。 初始化 curl_init() 函式初始化一個 cURL session,會傳回一個 cURL handle 作為後面設定執行等函式使用。初始化的時候可以直接指定 URL ,或保留空白由後面設定中在指定。 設定 使用 curl_setopt() 函式設定 cURL session handle 的項目內容,這裡有非常非常多的項目參數可以設定,可以參考 官方網站 curl_setopt 的項目參數說明本文後面僅列出常用的參數。 執行 curl_exec() 函式執行一個已經設定好參數的 cURL session。執行成功時會回傳 TRUE 失敗時回傳 FALSE ,如果參數裡包含 CURLOPT_RETURNTRANSFER 設定為 TRUE 時,執行成功後會回傳內容。 關閉 curl_close() 函式會關閉指定的 cURL session,並釋放資源及刪除 cURL handle。 一個簡單的範例: // 建立一個新的 cURL session $ch = curl_init(); // 設置 URL 及其他參數 curl_setopt( $ch , CURLOPT_URL, "http://www.example.com/" ); curl_setopt( $ch , CURLOPT