php採集系統
1. python不是腳本語言,雖然它是動態解釋的。它可以完成系統級的開發。
2. python是跨平台的,你可以運用python在mac,在linux,在win下,甚至是s60手機中開發軟體;PHP沒有這些能力。
3. 從語法上說python的語法蜜糖更多些,語言結構簡練,最簡單的,PHP的就比較復雜繁瑣。
4. web開發上,PHP應用較廣,有很多現成的代碼和模版,python這方面欠缺,雖然它有很多很好的框架。比如django。
5. python因其應用范圍,學習時間更長,當然如果你只玩網站建設,像有人說的webpy學習周期很短,基本上在瀏覽器中就能完成基本的建站工作。
6. 如果要學習編程技術,建議python。如果想盡快出網站建議PHP。
2. php採集是運行一段時間就會卡住!如何解
卡住的原因很多,主要可能有以下幾個原因 : 1、瀏覽器內存容量佔用問題,當一個頁面不停不停的增加內容時,瀏覽器有可能因渲染引擎的問題而卡住 。比如你打開一個大型的JS程序,裡面不停的加截圖片等資源 。 2、採集遠程文件時候,對方進行了限制。有些伺服器為了防止 非正常用戶訪問,會對訪問者進行攔截,比如有些頁面,用戶停留時間才十幾MS,或一個用戶有幾十個HTTP請求,那麼伺服器會暫停返回數據 。 3、所寫的採集程序掛了。 具體 是哪一個原因 ,可以寫log跟一下
3. 我編寫了一個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用來傳送文件之間的參數。