2011-04-25 139 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