『壹』 如何用php做網路爬蟲
其實用PHP來爬會非常方便,主要是PHP的正則表達式功能在搜集頁面連接方面很方便,另外PHP的fopen、file_get_contents以及libcur的函數非常方便的下載網頁內容。
『貳』 如何用php抓取js生成的頁面
簡單的說,做不到。
如果要抓取JS生成的頁面,可以考慮用PhantomJS。
其原理大概就是在你的伺服器上開了一個webkit內核的瀏覽器,然後在瀏覽器裡面打開頁面,在頁面load之後,你可以通過API獲取頁面上的DOM,同時也可以進行點擊之類的操作。
如何使用,不是這裡面能說清楚的。還是自己差一些資料吧。
『叄』 PHP, python, Node.js 哪個比較適合寫爬蟲
我覺得做爬蟲肯定需要後台技術的支持,和自己的對很多技術的理解和掌握吧,然後就是需要自己去找資料,去請教有經驗的人。
1、如果是定向爬取幾個頁面,做一些簡單的頁面解析,爬取效率不是核心要求,那麼用什麼語言差異不大。 此種情況下,如果還需要做js動態內容的解析,casperjs就不適合了,只有基於諸如chrome V8引擎之類自己做js引擎。
至於C、C++雖然性能不錯,但不推薦,尤其是考慮到成本等諸多因素;對於大部分公司還是建議基於一些開源的框架來做,不要自己發明輪子,做一個簡單的爬蟲容易,但要做一個完備的爬蟲挺難的。
『肆』 網頁內容是由javascript或者php用爬蟲有何不同
javascript是瀏覽器腳本,php是伺服器腳本。你可以查看js的代碼,但不能查看php的代碼。抓取網頁的時候php網頁的內容顯得更干凈,而js網頁還要過濾掉js代碼。
『伍』 php 實現網路爬蟲
pcntl_fork或者swoole_process實現多進程並發。按照每個網頁抓取耗時500ms,開200個進程,可以實現每秒400個頁面的抓取。
curl實現頁面抓取,設置cookie可以實現模擬登錄
simple_html_dom 實現頁面的解析和DOM處理
如果想要模擬瀏覽器,可以使用casperJS。用swoole擴展封裝一個服務介面給PHP層調用
在這里有一套爬蟲系統就是基於上述技術方案實現的,每天會抓取幾千萬個頁面。
『陸』 如何用php 編寫網路爬蟲
php不太適合用來寫網路爬蟲,因為幾乎沒有現成的框架,或者成熟的下載機制,也不太適合做並發處理.
下載頁面的話除了一個curl,就是file_get_contents,或者curl_multi來做並發請求.curl可以代理埠,虛假ip,帶cookie,帶header請求目標頁面,下載完成之後解析頁面可以用queryList來解析html.寫法類似jQuery.
提供給你我之前寫的類:curl.php 希望可以幫到你.
QueryList.php和phpQuery.php由於文件太大了,沒辦法貼上來
<?php
classHttp{
publicfunctioncurlRequest($url,$postData='',$timeOut=10,$httpHeader=array()){
$handle=curl_init();
curl_setopt($handle,CURLOPT_URL,$url);
if($httpHeader){
curl_setopt($handle,CURLOPT_HTTPHEADER,$httpHeader);
}
curl_setopt($handle,CURLOPT_RETURNTRANSFER,true);
curl_setopt($handle,CURLOPT_HEADER,0);curl_setopt($handle,CURLOPT_TIMEOUT,$timeOut);
curl_setopt($handle,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($handle,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($handle,CURLOPT_SSL_VERIFYHOST,false);
curl_setopt($handle,CURLOPT_USERAGENT,'Mozilla/5.0(Macintosh;IntelMacOSX10_7_2)AppleWebKit/537.36(KHTML,likeGecko)Chrome/27.0.1453.93Safari/537.36');curl_setopt($handle,CURLOPT_ENCODING,'gzip,deflate,sdch');
if(!empty($postData)){
curl_setopt($handle,CURLOPT_POST,1);
curl_setopt($handle,CURLOPT_POSTFIELDS,$postData);
}
$result['response']=curl_exec($handle);
$result['httpStatus']=curl_getinfo($handle,CURLINFO_HTTP_CODE);
$result['fullInfo']=curl_getinfo($handle);
$result['errorMsg']='';
$result['errorNo']=0;
if(curl_errno($handle)){
$result['errorMsg']=curl_error($handle);
$result['errorNo']=curl_errno($handle);
}
curl_close($handle);
return$result;
}
}
?>
『柒』 php怎麼用爬蟲解析網頁上js生成的圖片
道理上講不可行,不管是PHP還是python,爬蟲技術用於抓取網頁解析內容和靜態內容,也就是在瀏覽器不解析js腳本時的網頁內容,因為js腳本解析需要用到瀏覽器內置的js解析程序,而php和python簡單爬蟲都做不到這一點,如果是自己的網站抓取,用非同步提交放到緩存里讓後台腳本處理,如果是別人的網站就不用考慮了。爬蟲程序要加上完整的腳本解析程序,還要保證定向抓取不拿到垃圾數據,當然如果你能做到這些,就可以去網路工作了
『捌』 用php 怎麼抓取js+ajax動態生成的頁面內容
第一步,查看網頁源代碼,找到ajax請求的URL。
比如,js代碼為:
$.ajax({
url: 'ajax.php?id=100',
data: {ad_num:num,ad_str:str,cart_update_time:cart_update_time},
type: 'POST',
dataType: 'text',
async : false,
success: function(data){
}
其中的ajax.php?id=100就是ajax請求的URL。
第二步,拼接URL,用網站的域名加上這個找到的請求路徑。
比如,網站域名為: www.abc.com 拼接後的URL為:www.abc.com/ajax.php?id=100
第三步,用PHP讀取第二步拼接出的URL即可。