首页 > 解决方案 > DOMDocument::loadHTML() - 使用外部 Javascript

问题描述

我从 Instagram 的oEmbed获取数据。我收到了这个 API 响应:

{
  "version": "1.0",
  "author_name": "diegoquinteiro",
  "provider_name": "Instagram",
  "provider_url": "https://www.instagram.com/",
  "type": "rich",
  "width": 658,
  "html": "<blockquote class=\"instagram-media\" data-instgrm-ca...",
  "thumbnail_width": 640,
  "thumbnail_height": 640
}

对于html密钥,我想使用 加载它DOMDocument::loadHTML(),所以这是我的代码:

$dom = new \DOMDocument('1.0', 'UTF-8');
$dom->loadHTML($data['html']);

这样做的问题是它没有完全呈现页面,因为该html值具有 a<script async src="//platform.instagram.com/en_US/embeds.js"></script>但它不执行该脚本。

有没有办法完全呈现页面,比如在底部执行 javascript,然后我将开始解析 HTML。我正在DOMXPath解析这些 HTML。

顺便说一句,这是html来自 Instagram 的 API 响应的密钥的全部值:

在此处输入图像描述

标签: phplaraveldominstagram-api

解决方案


推荐阅读