xpath 从 iframe domXPath 获取数据 php
xpath getting data from iframe domXPath php
我正在玩抓取网站技术,例如link,它总是返回空的描述。
原因是它由 JS 使用以下代码填充,我们如何处理这些类型的 senarios。
// Frontend JS
P.when('DynamicIframe').execute(function(DynamicIframe){
var BookDescriptionIframe = null,
bookDescEncodedData = "book desc data",
bookDescriptionAvailableHeight,
minBookDescriptionInitialHeight = 112,
options = {},
iframeId = "bookDesc_iframe";
我正在使用 php domxpath 如下
$file = 'sample.html';
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
// I am saving the returned html to a file and reading the file.
@$dom->loadHTMLFile($file);
$xpath = new DOMXPath($dom);
// This xpath works on chrome console, but not here
// because the content is dynamically created via js
$desc = $xpath->query('//*[@id="bookDesc_iframe"]')
每次当您看到这些 JavaScript 生成的内容,尤其是来自像亚马逊这样的大公司 google 时,您应该立即认为它会有一个优雅的降级实现。
意味着它将在 Javascript 不像 links 浏览器那样工作的地方完成,以获得更好的浏览器覆盖率。
寻找 <noscript>
你可能会找到一个。这样你就可以解决问题了。
我正在玩抓取网站技术,例如link,它总是返回空的描述。 原因是它由 JS 使用以下代码填充,我们如何处理这些类型的 senarios。
// Frontend JS
P.when('DynamicIframe').execute(function(DynamicIframe){
var BookDescriptionIframe = null,
bookDescEncodedData = "book desc data",
bookDescriptionAvailableHeight,
minBookDescriptionInitialHeight = 112,
options = {},
iframeId = "bookDesc_iframe";
我正在使用 php domxpath 如下
$file = 'sample.html';
$dom = new DOMDocument();
$dom->preserveWhiteSpace = false;
// I am saving the returned html to a file and reading the file.
@$dom->loadHTMLFile($file);
$xpath = new DOMXPath($dom);
// This xpath works on chrome console, but not here
// because the content is dynamically created via js
$desc = $xpath->query('//*[@id="bookDesc_iframe"]')
每次当您看到这些 JavaScript 生成的内容,尤其是来自像亚马逊这样的大公司 google 时,您应该立即认为它会有一个优雅的降级实现。
意味着它将在 Javascript 不像 links 浏览器那样工作的地方完成,以获得更好的浏览器覆盖率。
寻找 <noscript>
你可能会找到一个。这样你就可以解决问题了。