我正在尝试解析来自网址的数据。但是,相关 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 中?
您想要的内容很可能来自一个或多个 XMLHttpRequest (xhr)。在浏览器中加载页面,并打开网络选项卡的控制台。在浏览器中按“xhr”或等效内容过滤。在那里您应该能够看到 xhr 请求的 url 端点。使用curl向这些端点发送http请求,确保模拟正确的标头、类型(GET/POST/等)和任何其他请求参数。
这可能无法让您获得与在浏览器中看到的完全相同的 dom 元素,但您很可能会获得需要解析的数据。