2011-04-25 133 views
0

我需要構建一個系統以從網頁集合中提取海量數據。很多這些網站(mayabe 90%左右)由各種不同的JavaScript系統提供支持。我想知道什麼是最有效的方法來提取這些數據?從javascript網頁中提取數據

由於每個站點都不同,我正在尋找一個靈活的解決方案,並且由於有許多站點,我正在尋找一種解決方案,儘可能減輕網絡壓力。

我的大部分編程經驗都是使用C,C++和Perl編寫的,但是我很樂意提供最好的結果。

網頁不斷更新我希望提取的數據和統計信息,並對其進行一些分析,因此我需要能夠輕鬆地將它們存儲在數據庫中。

我已經做了一些我自己的研究,但我真的在這裏空白。我希望別人能幫助我! :)

+0

'刮'是非常不道德的。你想做什麼? – Halcyon 2011-04-25 09:49:07

+0

一些關於博彩公司賠率變化的統計分析。 – dlmalloc 2011-04-25 10:04:17

+0

您可能可以編寫一些正則表達式來提取數據部分。真的沒有多少。 – Halcyon 2011-04-25 10:10:02

回答

-1

也許你應該嘗試PHP DOMDocument類。 例如,這段代碼將「竊取」URL中的所有表標記。

$data=array();  
$url='your.site.com'; 
$out=file_get_contents($url); 
$dom=new DOMDocument(); 
$dom->loadHTML($out); 
foreach($dom->getElementsByTagName('table') as $table){ 
data[]=$table->nodeValue; 
} 
print_r($data); 

您可以獲取並操作所有的DOM並解析所有的html文檔。考慮使用AJAX方法異步調用此腳本。

+0

這不會幫助在JavaScript動力網站的情況下,他說這是他的主要焦點。 – 2011-04-25 13:10:13

+0

偷東西

0

您將需要一個瀏覽器來解釋JavaScript,併爲您提供實際的請求。然後,您需要獲取解釋結果的DOM快照。這不會是微不足道的,而且在純PHP中是不可能的。

我沒有自己的經驗,但也許Selenium套房可以提供幫助。這是一個用於軟件測試的自動化套件,但根據this article,在一定程度上也可以用於抓取。

+0

這看起來很有趣,歡呼!我想知道它會有多快?如果每當我無法想象的時候打開一個標籤,那麼儘可能頻繁地抓取30個以上的網站會很快發生。我肯定會調查更多。謝謝。 – dlmalloc 2011-04-25 17:38:52