2013-06-25 37 views
-1

什么被认为是一个很好的习惯来解析HTML页面,其中html是通过JavaScript插入的? 查看源代码时,以下页面Parcel report未显示表格或表格数据。我最好的猜测是这是因为表格是通过JavaScript插入的。那么在这种情况下,这种数据的一种很好的实践方法是什么呢?用javascript注入的javascript

我希望将文件转储到一个字符串和打印表使用类似的方法,但我愿意听到任何建议。

$html_import = ??? 
$html->loadHTML($html_import); 
$td = $html->getElementsByTagname('td'); 
foreach($td as $tds) { 
printf(" * %s\n", $tds->textContent); 
echo '<br>'; 

}

+0

你不能“刮”这样的内容,因为JS代码不会在PHP中执行。 PHP(和DOM)不能对js生成/插入的代码做任何事情。您需要使用其他方式,例如一个无头浏览器来模拟实际的浏览器渲染页面,然后从中提取修改后的DOM。 –

+0

你能指导我的任何信息来源吗?对,我编辑了一下我的问题。我希望将html的内容转储为一个字符串,然后加载该字符串。 –

+0

http://stackoverflow.com/questions/6578132/php-headless-browser –

回答

1

如果你看一下HTTP请求正在进行加载网页时,你会看到AJAX请求出去。

GET http://gis.catawbacountync.gov/_rest/v0/ws_ims_attribute_query.php?parameters=pinc+%3D+%27374219517154%27&table=ws_parcel_report3&fields=*&orderby=&format=json 

这就是实际检索你想要的数据。如果您可以访问该API,则可以轻松获取所需的信息。

因为这是一个政府网站,我怀疑他们需要给你这个信息,因此API。

如果您试图通过试验/错误拼凑API,请确保您没有违反任何使用条款。

+0

这是公开的数据。我在网站上浏览了一下,除了没有恶意攻击这个网站外,没有看到任何东西,但我会再次检查。 –