php採集器
A. php 數據採集 太慢
用了後台服務程序了,但這些後台服務程序可能不是PHP寫的,數據採集器本身就是一個程序,PHP告訴他干什麼,幹完了通知一下就行,PHP檢查是否幹完就行了,一般應用程序中比較繁瑣的操作,都會寫後台程序,另開幾個線程,或用另外進程來處理,網路編程其實我不懂,我想應該是同樣的方法。。。
B. php使用3種方法實現數據採集 什麼叫採集
下面的php代碼可以將表格的每行每列轉為數組,採集表格數據
<?php function get_td_array($table) { $table = preg_replace("'<table[^>]*?>'si","",$table); $table = preg_replace("'<tr[^>]*?>'si","",$table); $table = preg_replace("'<td[^>]*?>'si","",$table); $table = str_replace("</tr>","{tr}",$table); $table = str_replace("</td>","{td}",$table); //去掉 html 標記 $table = preg_replace("'<[/!]*?[^<>]*?>'si","",$table); //去掉空白字元 $table = preg_replace("'([rn])[s]+'","",$table); $table = str_replace(" ","",$table); $table = str_replace(" ","",$table); $table = explode('{tr}', $table); array_pop($table); foreach ($table as $key=>$tr) { $td = explode('{td}', $tr); array_pop($td); $td_array[] = $td; } return $td_array; } ?>
C. php 採集個網站內容
$data=get_meta_tags('url');
echo $data['description'];
D. 求一個開源PHP的小說整站系統,採集器要好用一點的
①http://www.163box.com/showurl.asp?id=13101
貳http://www.cnzz.cc/code/122.html
E. PHP中怎樣實現文章採集
只舉例說明,生產環境你自己根據情景去搞
$url = 'www.domain.com';
$content = file_get_content($url);//抓取網頁全部內容
preg_match( string pattern, string subject [, array matches ] );//正則獲取自己需要的內內容
入庫~
完事了。容。。
當然,情形復雜,例如需要登錄,採集目標限制等問題,這再說...
實際使用的時候,可以直接使用Snoopy類,提供好多方法供使用,比自己去造輪子要安全,當然,你可以在她的基礎上再去造輪子~~~
F. 我編寫了一個php採集器。主要是採集某個網站的文本信息,可是瀏覽器時間一長就斷了
這是因為,PHP腳本是一般情況下只能運行30秒左右,
具體數據與伺服器的設置有關。
如果你的腳本超時,就要對任務對進分解。
做成任務接力的形式。
當PHP頁面處理大事務時,頁面往往會發生超時的錯誤,我解決此問題的方法如下:
1.優化程序代碼:
這種方法可能有時立竿見影,但對一些已經很優化或者第三方開發的程序,可能用處不大,但我個人覺得這個辦法還是應該優先考慮,這個一個優秀程序員必需有的工作美德。
2.對多個任務進行拆分:
對於一些程序,可能問題並不出現在代碼效率上,如Paypal的SOAP調用,大量時間花費在網路的數據傳遞上了,(此問題在Web Services的遠程調用時經常發生),我們當然不能等將來網速的提高來解決這個問題。其實我們可以查看一下在一個POST動作中是否包含了多個任務,如付費、發Email、發貨等等。如是這樣其實可以對這些任務進行拆分,把這個工作拆分成多個子工作來實現。如執行完付費任務時,使用PHP的 Header函數重定向到發送Email的頁面,完成後再定向到其他頁面,採用redirect頁面的方式來接力地完成任務。
設計三個PHP文件,分別是s2.php s3.php s4.php
讓這三個文件進行接力,
s2.php的內容如下
<?php
ob_start();
sleep(3);//代表做某些任務所用的時間
echo "在做第一件事。";
header("Location: http://127.0.0.1/s3.php?i=1");
ob_end_flush();
?>
s3.php的內容如下:
<?php
ob_start();
$i=$_GET['i']+1;
echo 「在做第二件事」;
sleep(3);//用來代表做了某件事件
header("Location: http://127.0.0.1/s4.php?i=$i");
ob_end_flush();
?>
s4.php
<?php
ob_start();
$i=$_GET['i']+1;
sleep(3);
echo "在做第三件事";
ob_end_flush();
?>
變數i用來傳送文件之間的參數。
G. php自動採集如何實現
PHP自動採集能一定程度的實現,部分網站的頁面結構存在一定的共通點,比回如文章內容頁答的標題,不少網站是標記在<h1>里的,實在不行,就採集<title>,絕對能採到,然後、過濾掉title裡面的網站名稱。
採集文章內容就相對麻煩,但是通過層層分析,層層剝離,一定要進行大量的網站分析,寫出多套通用性比較強的採集規則,程序在採集的時候也要進行大量分析。
有幾點是可以肯定的,那就是絕對不能要求採集效果達到為某個網站單獨寫採集規則來的效果好,也絕對不是能匹配任意網站,頂多能匹配部分網站。
H. php小說採集器要採集每一章節怎麼寫
用preg_match_all函數採集所有章節的url,再正則截取每個url裡面的指定內容,建議直接用火車頭就好了,
I. 用PHP進行數據採集
$strPreg = "|<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>\s*<td[^>]+>([^<]+)<\/td>|U";
搞定了才發現你都沒懸賞分。。。