如何使用PHP简单HTML DOM解析器获取标签的属性

时间:2018-08-13 16:45:15

标签: php html curl

我正在使用PHP Simple HTML DOM parser抓取网站数据,但不幸的是无法提取我想要的数据。我也尝试过使用google并查看文档,但无法解决问题。我要删除的代码结构是这样的。

<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. How do I get the HTML code of a web page in PHP?
  2. PHP Simple HTML DOM
  3. PHP Simple HTML DOM Parser Call to a member function children() on a non-object
  4. 及其手册http://simplehtmldom.sourceforge.net/manual.htm

任何人都可以帮助我

谢谢

1 个答案:

答案 0 :(得分:0)

该代码段可以正常使用。问题是页面加载时我定位的URL不存在。页面加载后,它是由<script>标签添加的。

谢谢@WillardSolutions