使用PHP Simple HTML DOM解析器解析输出

时间:2015-05-11 14:10:47

标签: php parsing

我正在使用这个库(PHP Simple HTML DOM解析器)来解析链接,这里是代码:

$htmlUrl = 'http://trailers.apple.com/trailers/independent/thelook/includes/playlists/web.inc';
$html = file_get_html($htmlUrl);

当我打印时:

print_r($html . "\n");

输出这个(html树):

<h2>
  <span class="dropdown-handle" id="trailers-handle">
    <span id='single-trailer-info'>Info</span>
    <span class='button'>
...

然后我想在类(dropdown-list)中找到一个元素:

$divList = $html->find('.dropdown-list'); // tried find('.dropdown-list', 0);

然后我打印:

print_r($divList);

输出这个(数组):

simple_html_dom_node Object
(
    [nodetype] => 1
    [tag] => div
    [attr] => Array
        (
            [class] => dropdown-list
        )

    [children] => Array
...

并且永远保持参与!

我做错了吗? 有些链接有这个输出(数组)而不是输出(html树)。

感谢您的帮助:)

1 个答案:

答案 0 :(得分:1)

在print_r之前尝试清除或关闭(对不起,我忘了哪一个,只试一个然后另一个)。

$html->clear();

$html->close();

如果这不起作用,并且你知道你所在的对象&#34;发现&#34; ing是某种选择器类型,你应该首先抓住所有这些。然后搜索它们,如果你能够做到这一点,它会更快。因此,如果它<select>首先找到所有这些内容,那么请对其进行查找,或者甚至不使用查找并使用foreachstrpos自行解析它们

如果这不起作用,请尝试先使用wget抓取您的网页,然后在将它们保存到服务器后使用简单的dom解析它们。