使用PHP的cURL庫可以簡單和有效地去抓網(wǎng)頁。你只需要運行一個腳本,然后分析一下你所抓取的網(wǎng)頁,然后就可以以程序的方式得到你想要的數(shù)據(jù)了。無論是你想從從一個鏈接上取部分數(shù)據(jù),或是取一個XML文件并把其導入數(shù)據(jù)庫,那怕就是簡單的獲取網(wǎng)頁內(nèi)容,cURL 是一個功能強大的PHP庫。本文主要講述如果使用這個PHP庫。
啟用 cURL 設置
首先,我們得先要確定我們的PHP是否開啟了這個庫,你可以通過使用php_info()函數(shù)來得到這一信息。
如果你可以在網(wǎng)頁上看到下面的輸出,那么表示cURL庫已被開啟。
如果你看到的話,那么你需要設置你的PHP并開啟這個庫。如果你是在Windows平臺下,那么非常簡單,你需要改一改你的php.ini文件的設置,找到php_curl.dll,并取消前面的分號注釋就行了。如下所示:
//取消下在的注釋 extension=php_curl.dll如果你是在Linux下面,那么,你需要重新編譯你的PHP了,編輯時,你需要打開編譯參數(shù)——在configure命令上加上“–with-curl” 參數(shù)。
一個小示例
如果一切就緒,下面是一個小例程:
如何POST數(shù)據(jù)
上面是抓取網(wǎng)頁的代碼,下面則是向某個網(wǎng)頁POST數(shù)據(jù)。假設我們有一個處理表單的網(wǎng)址http://www.example.com/sendSMS.php,其可以接受兩個表單域,一個是電話號碼,一個是短信內(nèi)容。
從上面的程序我們可以看到,使用CURLOPT_POST設置HTTP協(xié)議的POST方法,而不是GET方法,然后以CURLOPT_POSTFIELDS設置POST的數(shù)據(jù)。
關于代理服務器
下面是一個如何使用代理服務器的示例。請注意其中高亮的代碼,代碼很簡單,我就不用多說了。關于SSL和Cookie
關于SSL也就是HTTPS協(xié)議,你只需要把CURLOPT_URL連接中的http://變成https://就可以了。當然,還有一個參數(shù)叫CURLOPT_SSL_VERIFYHOST可以設置為驗證站點。
關于Cookie,你需要了解下面三個參數(shù):
- CURLOPT_COOKIE,在當面的會話中設置一個cookie
- CURLOPT_COOKIEJAR,當會話結束的時候保存一個Cookie
- CURLOPT_COOKIEFILE,Cookie的文件。
HTTP服務器認證
最后,我們來看一看HTTP服務器認證的情況。