使用 PHP 解析动态加载的 HTML

问题描述 投票:0回答:1

我正在尝试解析来自网址的数据。但是,相关 URL 似乎会在浏览器加载时动态加载内容。

到目前为止我已经尝试了几件事:

$dom = new DOMDocument;
$dom->loadHTMLFile($url);

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($ch);
curl_close($ch);

$content = file_get_contents($url);

所有这些选项都会让我获得最初加载的 HTML,但不会获得我试图解析的、随后动态加载的内容。

是否有另一种选择来使用 PHP 解析 HTML 内容,确保所有内容都已完全加载到 DOM 中?

php html-parsing domdocument file-get-contents php-curl
1个回答
0
投票

您想要的内容很可能来自一个或多个 XMLHttpRequest (xhr)。在浏览器中加载页面,并打开网络选项卡的控制台。在浏览器中按“xhr”或等效内容过滤。在那里您应该能够看到 xhr 请求的 url 端点。使用curl向这些端点发送http请求,确保模拟正确的标头、类型(GET/POST/等)和任何其他请求参数。

这可能无法让您获得与在浏览器中看到的完全相同的 dom 元素,但您很可能会获得需要解析的数据。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.