php - 如何使用 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 中关注这些与我的相似的帖子,但这些对我没有帮助。
- 如何在 PHP 中获取网页的 HTML 代码?
- PHP 简单的 HTML DOM
- PHP 简单 HTML DOM 解析器调用非对象上的成员函数 children()
- 以及他们的手册http://simplehtmldom.sourceforge.net/manual.htm
谁能帮帮我吗
谢谢
解决方案
代码片段很好。问题是我的目标网址在页面加载时不存在。它是<script>
在页面加载后由标签添加的。
谢谢@WillardSolutions
推荐阅读
- amazon-web-services - AWS Lambda 与 ElasticSearch / Kibana 的连接耗时超过 1.5 秒
- spring-data-redis - Spring Gateway Redis 会话存储类型 - 保存问题
- apache-spark - 如何使用 spark 使 Impala 的元数据无效?
- php - PHP将字符串值从特定位置替换为字符串中的第一个特殊字符
- anaconda - 如何在 linux 中为 Scaled-YOLOv4 设置环境
- azure-devops - 天蓝色管道的其他阶段不可用的动态变量
- kubernetes - 无法在 Kubernetes 上设置 Calico
- javascript - 如何在嵌套对象/数组数据结构的任何级别定义确切的数据类型?
- flutter - 在 Flutter 上使用 SignalR
- python - 获取数组中与 x 最接近的值的索引