首页 > 解决方案 > 如何使用 PHP 简单的 HTML DOM 解析器获取标签的属性

问题描述

我正在使用PHP Simple HTML DOM 解析器来废弃网站数据,但不幸的是无法提取我想要的数据。我也尝试过谷歌并查看文档,但无法解决问题。我试图废弃的代码结构是这样的。

<div id="section1">
   <h1>Some content</h1>
   <p>Some content</p>
   ............
    <<Not fixed number of element>>
   ............
   <script> <<Some script>></script>
   <video>
     <source src="www.exmple.com/34/exmple.mp4">
   </video>
</div>

我尝试使用 JavaScript,我也可以这样做

document.getElementById("section1").getElementsByTagName("source")[0].getAttribute("src");

但是当我尝试使用 PHP Dom 解析器时,我没有得到任何数据。这是我的代码的样子

require ''.$_SERVER['DOCUMENT_ROOT'].'/../lib/simplehtmldom/simple_html_dom.php';

 $html_content = get($url); //This is cURL function to get website content.
 $obj_content = str_get_html($html_content);
 $linkURL = $obj_content->getElementById('section1')->find('source',0)->getAttribute('src');
var_dump($linkURL); 

这会产生一个空字符串。我也尝试在这里和那里更改一些代码,但每次这些作品都没有空白。但是如果我var dump $obj_content得到很多 dom 元素

我试图从 stackoverflow 中关注这些与我的相似的帖子,但这些对我没有帮助。

  1. 如何在 PHP 中获取网页的 HTML 代码?
  2. PHP 简单的 HTML DOM
  3. PHP 简单 HTML DOM 解析器调用非对象上的成员函数 children()
  4. 以及他们的手册http://simplehtmldom.sourceforge.net/manual.htm

谁能帮帮我吗

谢谢

标签: phphtmlcurl

解决方案


代码片段很好。问题是我的目标网址在页面加载时不存在。它是<script>在页面加载后由标签添加的。

谢谢@WillardSolutions


推荐阅读