0

我正在尝试解析网页并打印出网页上的表格。我正在使用 php_simple_html dom 解析器。但是,当我尝试从网页上解析表格时,所有输出表格的 javascript 命令都变成了 php 中的注释:

<html>
<script type="text/javascript" src="jquery.js"></script>
<?php
    include 'crawling/simple_html_dom.php';
    $html = file_get_html('http://uiucfreefood.com/');


    $ret = $html->find('body', 0)->find('div', 10)->find('table',0); //gets to the table tag
    echo $ret; // nothing is echoed out because the original webpage uses jscript commands to write the table to the page but these commands get turned to comments for some reason.
?>
</html>

当我检查页面的元素时,我正在回显解析的信息,我能够看到带有所有信息的表格标签在那里,但 jscript 命令已变成注释。有没有办法让我自己获取信息并回显出来?我尝试添加另一个 ->find('tbody'); 在 parse 命令的末尾,但它什么也不做。任何建议表示赞赏。谢谢。

编辑:如果您下载 simple_html_dom.php 并将其包含在您的 php 文件中,您可以自己尝试此代码。来源:http: //sourceforge.net/projects/simplehtmldom/files/

编辑:刚刚注意到一些非常重要的事情。javascript 命令也在原始网页中被注释掉。相反,原始网页使用 javascript 函数打印出我没有定义的表格。自己编写该函数应该可以解决问题。

编辑:是的,那行得通。

4

1 回答 1

2

尝试使用 file_get_content 而不是获取 HTML,看看是否可行。老实说,根据您的需要,您应该编写自己的解析器。为表扫描和显示编写解析器并不难。

您只需要以下内容;

$array = split("<table>", $content);
$boolPlaceHolder = false;

然后您可以在遇到这种方式时将占位符设置为true,您可以扫描内容的字符并抓取表格。

希望这可以帮助。

于 2013-11-12T04:05:44.660 回答