我們一般要抓取一個網站的靜態頁面來完成我們的需求,其實在這里面有很多種方式可以完成,
php內置函數file_get_contents();file();readfile();都可以進行網頁抓取,但是這種方式畢竟是有很大
局限性的,例如我們要訪問一個需要登錄的網站,需要登錄驗證信息,這是后php內置函數就顯得疲軟了
所以我們發現了一個php的擴展類curl來幫助我們完成這種事情,curl是php的擴展之一我們只需要安裝它
並且在php.ini文件中打開他的擴展就可以使用了,這里我們不多贅述,其實curl使用起來還是蠻簡單的下面
我們給出一個簡單的demo:
<?php
$url = "www.baidu.com";//以百度為例
$data = array();
$curl = curl_init();//初始化一個curl會話;
curl_setopt($curl,CURLOPT_URL,$url);//指定訪問的url
curl_setopt($curl,CURLOPT_POST,$data);//post請求的參數,
curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);//獲取的信息以文件流的方式返回
$data = curl_exec($curl);//執行curl;
var_dump($data);
curl_close($curl); // 關閉CURL會話
?>
這就完成了一次curl會話,大家感覺是不是沒什么特別之處?,別急,我們來看看他的精髓之處就是可以傳參數,當然什么cookies呀!驗證的這些東西就可以通過這個來完成,
curl參數很多這里就不一一介紹了;
另外推薦大家去看一看snoopy抓取類也是不錯的一個工具,simple_html_dom文檔解析也很不錯。