【问题标题】:PHP HTML DOM Parser [duplicate]PHP HTML DOM解析器[重复]
【发布时间】:2011-05-18 20:23:07
【问题描述】:

可能重复:
How to parse and process HTML with PHP?

我正在研究 PHP 的 HTML DOM 解析器。我找到了PHP Simple HTML DOM Parser。还有其他我应该看的吗?

【问题讨论】:

  • 你为什么认为你需要别的东西?如果它完成了工作,请使用它。 :)
  • 它仍然是一个很好的资源戈登,+1

标签: php dom simple-html-dom


【解决方案1】:

是的。简单的 html 文档就可以了,但是比内置的 dom 解析器要多magnitude slower

$dom = new DOMDocument();
@$dom->loadHTML($html);
$x = new DOMXPath($dom); 

foreach($x->query("//a") as $node) 
{
    $data['dom']['href'][] = $node->getAttribute("href");
} 

使用它。

【讨论】:

  • 有没有办法让query 返回一个节点而不是节点列表?例如,一个页面只有一个 h1 标签。我想得到它的nodeValue,但不认为我应该遍历一个nodelist。
  • 您应该可以使用$node[0] 获取列表中的第一个节点。或者只是迭代和中断。我只是迭代和打破。如果查询没有返回任何内容,我不会得到任何错误。
【解决方案2】:

你可以看看内置的DOM

http://php.net/dom

【讨论】:

    【解决方案3】:

    最近我也找到了ganon,但总的来说PHP Simple HTML DOM Parser是最好的!

    【讨论】:

    • PHP Simple HTML DOM Parser 阻塞,如果你尝试爬取多个页面,例如级别 1:获取 300 个链接(例如,来自列表)级别 2:转到每个链接并检索包含详细信息的页面并获取元素。你得到的只是一组重置错误(取决于服务器类型)——而且速度很慢
    • ganon 只加载我想要的 2 个元素,当尝试运行简单的 html dom 解析器时,我的电脑挂了!!!
    • 我发现 ganon 比 PHP 的内置 DOM 和 Simple HTML DOM Parser 慢得多。此外,Simple HTML DOM 似乎存在严重的内存泄漏,您必须手动清理或重用分配的对象。
    猜你喜欢
    • 2015-08-25
    • 2012-08-24
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-15
    • 1970-01-01
    相关资源
    最近更新 更多