我需要构建一个系统来从一组网页中提取大量数据。很多这些网站(可能是90%左右)都是由各种不同的javascript系统提供支持。我想知道提取这些数据的最有效方法是什么?
由于每个网站都不同,我正在寻找一个灵活的解决方案,因为有很多网站,我正在寻找一个解决方案,尽可能减轻我的网络压力。
我的大多数编程经验都是用C,C ++和Perl编写的,但我很高兴能得到最好的结果。
网页不断更新我希望提取的数字和统计数据并进行一些分析,因此我需要能够轻松地将它们存储在数据库中。
我已经做了一些自己的研究,但我真的在这里空白了。我希望别人可以帮助我! :)
答案 0 :(得分:0)
您需要一个解释JavaScript的浏览器,并为您提供实际请求。然后,您需要获取解释结果的DOM快照。它不会是微不足道的,而且在纯PHP中它是不可能的。
我对此没有任何经验,但也许Selenium套件可以提供帮助。它是一个用于软件测试的自动化套件,但根据this article,在某种程度上也可用于抓取。
答案 1 :(得分:-1)
也许你应该尝试PHP DOMDocument类。 例如,此代码将“窃取”网址中的所有表格标记。
$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方法异步调用此脚本。