時間:2023-02-25 19:18:01 | 來源:電子商務(wù)
時間:2023-02-25 19:18:01 來源:電子商務(wù)
DEDECMS自帶的采集功能,雖然比不上其他專業(yè)的采集軟件,但對比其他采集程序,在性能上還是非常不錯。很多其他程序無法采集下來的網(wǎng)頁,使用DEDECMS可以采集得到。比如58同城首頁,使用discuz的下載函數(shù)采集過來的都是一片空白或者警告內(nèi)容,但是使用dedecms的下載完全可以下載下來。
DEDE采集程序原理
DEDECMS的采集原理很簡單: 通過PHP程序socket模擬HTTP請求,下載整張網(wǎng)頁的HTML。不過這里面有一個不足之處——不支持部分采集。如果我們僅僅要獲得對方網(wǎng)頁的標(biāo)題,卻下載了整張網(wǎng)頁。一兩張無所謂,但是大量的下載就會擠占服務(wù)器資源和帶寬。比如商務(wù)大陸網(wǎng)35dalucom的分類信息網(wǎng)站大全,該頻道含有600多分類信息網(wǎng)站,網(wǎng)站程序后臺自動定期獲取這些網(wǎng)站的標(biāo)題,以判斷這些網(wǎng)站是否可以正常打開,內(nèi)容是否發(fā)生改變。如果使用dede的程序,直接默認(rèn)下載整張網(wǎng)頁而不是僅網(wǎng)頁HTML頭部部分,長期下去可想而知會擠占多少服務(wù)器資源。此時我們此處僅僅需要獲得對方網(wǎng)頁的標(biāo)題而已。
修改文件dedehttpdown.class.php
要讓DEDECMS實現(xiàn)部分采集的功能非常簡單,只需要修改采集程序文件dedehttpdown.class.php 中的2個地方即可。使用notepad++或者dreamweaver 打開 /include/dedehttpd.class.php:
(1)第118行 $this->m_html = '';背后加入$this->dataLimit = 0;
(2)第 285行$this->m_html .= fgets($this->m_fp,256); 背后加入 if($this->dataLimit > 0 && strlen($this->m_html) > $this->dataLimit) break; 保存即可。
使用方法:
$remoteURL = ‘.***.com/info/fabu/’;
$dh = new DedeHttpDown();
$dh->OpenUrl($remoteURL);
$dh->dataLimit = 1024;
$remoteHTML = $dh->GetHtml();
我們只需要在 $dh->OpenUrl($remoteURL);背后加入 $dh->dataLimit = 1024;(你想采集的字節(jié)大小)即可。通過這樣的方法,我們可以更節(jié)約服務(wù)器資源。本文出自www.35dalu.com商務(wù)大陸網(wǎng)分類信息平臺,轉(zhuǎn)載請保留作者鏈接,謝謝。
關(guān)鍵詞:采集,支持,程序,部分
微信公眾號
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。