導航:首頁 > 編程語言 > php爬蟲

php爬蟲

發布時間:2022-01-29 19:28:12

A. php怎麼設置爬蟲爬過的網頁不再爬,原理是怎麼樣

爬過的網頁網址放在一個數組或者list表或者其它地方,然後爬的時候去判斷是否已存在,存在就不要去爬

B. PHP判斷是不是爬蟲的方法

理論上是無法判斷,一般可以判斷瀏覽器代理,但是爬蟲其實可以完全模擬瀏覽器。我網站禁止爬蟲的代碼如下:

//禁止OFFICE、尼姆達、蜘蛛
if(stripos($_SERVER['HTTP_USER_AGENT'],'Microsoft')===0||
stripos($_SERVER['HTTP_USER_AGENT'],'Microsoft-WebDAV-MiniRedir')===0||
stripos($_SERVER['HTTP_USER_AGENT'],'Baispider')===0||
stripos($_SERVER['HTTP_USER_AGENT'],'SogouOrionspider')===0||
stripos($_SERVER['HTTP_USER_AGENT'],'Googlebot'))exit('EXPLORERERROR(你的瀏覽器出現嚴重錯誤),MAYBEINFFECTVIRUS(你的電腦可能感染病毒)!');

C. PHP爬蟲和基於命令行的python爬蟲有什麼差別

php和python 寫爬蟲採集一些簡單的都可以,但是相對來說python更好,更方便,有很多現成的庫和方法支持直接解析網站,剖析你需要的數據,而php需要你大部分正則匹配,麻煩。

D. php爬蟲程序中怎麼樣偽造ip地址防止被封

使用IP代理

E. 如何用PHP做網路爬蟲

其實用PHP來爬會非常方便,主要是PHP的正則表達式功能在搜集頁面連接方面很方便,另外PHP的fopen、file_get_contents以及libcur的函數非常方便的下載網頁內容。

F. 如何用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;
}
}
?>

G. php 實現網路爬蟲

  1. pcntl_fork或者swoole_process實現多進程並發。按照每個網頁抓取耗時500ms,開200個進程,可以實現每秒400個頁面的抓取。

  2. curl實現頁面抓取,設置cookie可以實現模擬登錄

  3. simple_html_dom 實現頁面的解析和DOM處理

  4. 如果想要模擬瀏覽器,可以使用casperJS。用swoole擴展封裝一個服務介面給PHP層調用

在這里有一套爬蟲系統就是基於上述技術方案實現的,每天會抓取幾千萬個頁面。

H. php爬蟲如何切換代理

618代理IP,自建機房,HTTP代理,爬蟲代理,價格超低。多種時長選擇,滿足不同用戶的需求,超高可用率,支持HTTP,HTTPS,SOCKS5等協議。

I. php有哪些爬蟲框架

Beanbun 是用 PHP 編寫的多進程網路爬蟲框架,具有良好的開放性、高可擴展性。
php爬蟲框架phpspider

J. 你好,我如何用php來實現網路爬蟲呢具體一點

以下是訪問某音樂網站,並獲取其歌曲名等數組的示例,你可以參考:

<?php
header('Content-type:text/html;charset=utf-8');
$doc = file_get_contents('http://www.songtaste.com/music/');
$pa = '{MSL\((.*)\);}';
preg_match_all($pa,$doc,$r);
for($i=0;$i<count($r[1]);$i++)
{
$r1 = explode(', ',$r[1][$i]);
echo '歌曲標題:'. iconv('gb2312','utf-8',$r1[0]) .' 歌曲ID:'.$r1[1].'<br/>';
}
?>

閱讀全文

與php爬蟲相關的資料

熱點內容
基於單片機的數字示波器 瀏覽:36
登qq伺服器連接中什麼意思 瀏覽:436
表格宏命令 瀏覽:994
肯德基app設定在哪裡 瀏覽:472
蘋果電腦文件夾怎麼添加列印機 瀏覽:701
pythonswagger 瀏覽:235
作業打卡解壓素材 瀏覽:159
pdf導入ibooks 瀏覽:577
xps文件轉pdf 瀏覽:134
怎麼樣獲得命令方塊 瀏覽:899
安卓studio如何改主題 瀏覽:933
linux自動獲取ip命令行 瀏覽:208
做設計做程序員適合的電腦 瀏覽:778
網站有源碼和沒有源碼的區別 瀏覽:680
如何自學開發app 瀏覽:595
修電梯pdf 瀏覽:351
政務雲是不是提供虛擬伺服器 瀏覽:59
在哪裡看每個app用了多長時間 瀏覽:637
學程序員要英語四級嗎 瀏覽:133
java視頻錄制 瀏覽:758