㈠ php 實現網路爬蟲
pcntl_fork或者swoole_process實現多進程並發。按照每個網頁抓取耗時500ms,開200個進程,可以實現每秒400個頁面的抓取。
curl實現頁面抓取,設置cookie可以實現模擬登錄
simple_html_dom 實現頁面的解析和DOM處理
如果想要模擬瀏覽器,可以使用casperJS。用swoole擴展封裝一個服務介面給PHP層調用
在這里有一套爬蟲系統就是基於上述技術方案實現的,每天會抓取幾千萬個頁面。
㈡ 如何用php CURL 抓取微信網頁的內容
給你簡單介紹幾個吧
一、file_get_contents函數
$content = file_get_contents("URL");//URL就是你要獲取的頁面的地址
二、利用curl擴展
代碼如下:
function getCurl($url){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);//不輸出內容
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
$result = curl_exec($ch);
curl_close ($ch);
return $result;
}
PS:需要安裝PHP的curl擴展
㈢ php curl的幾種用法
總結一下項目中用到curl的幾種方式 1. php curl的默認調用方法,get方式訪問url $ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPHEADER, $header); //設置http頭 curl_setopt($ch, CURLOPT_ENCODING, "gzip" ); //設置為客戶端支持gzip壓縮 curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30 ); //設置連接等待時間 curl_setopt($ch, CURLOPT_URL, $url ); curl_exec( $ch ); if ($error = curl_error($ch) ) {//出錯處理return -1;}fclose($fp); $curl_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); //獲取http返回值 if( $curl_code == 200 ) { //正常訪問url}//異常 2. 設置http header支持curl訪問lighttpd伺服器Java代碼$header[]= 'Expect:'; $header[]= 'Expect:'; 3. 設置curl,只獲取http header,不獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_NOBODY, 1); 或者只獲取body:Java代碼curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); curl_setopt($ch, CURLOPT_HEADER, 0); // make sure we get the body curl_setopt($ch, CURLOPT_NOBODY, 0); 4. 訪問虛擬主機,需設置Host $header[]= 'Host: '.$host; 5. 使用post, put, delete等REStful方式訪問urlpost:curl_setopt($ch, CURLOPT_POST, 1 ); put, delete: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE"); //或者PUT,需要伺服器支持這些方法。6. 保存下載內容為文件
㈣ php如何寫爬蟲
據我所知,很多第三庫都可以實現你所要求的這些php爬蟲特徵。
如phpQuery,phpCrawl,phpSpider,Snoopy。
如果使李困毀用curl,也是相當不錯的。但你要做的事情更多。它只負尺姿責請求和下載,並沒有實現爬蟲的核心。別的事情都要自己做,至少你得先封裝一下。
如果你任務比較緊迫,建議選擇那些第三方庫,集成一下,能用先用著。
業務時間還是了解一下爬蟲的方方面面比較好。
xpath簡單,拿到源碼,交給phpQuery就可以,像使用jQuery一樣,不需要正則。還有一些是需要動態渲染才能哪備拿到數據的,得用無頭瀏覽器,如phantomjs,去處理。
速度不會成為問題,有問題也是因為速度太快,被網站發覺然後屏蔽你,而不是太慢。哈哈。
個人認為比較難的是怎麼針對反爬蟲策略,怎麼做全自動化。還是建議你去看幾本關於爬蟲的書。