PHP DOM函数file_get_html在页面完全加载后调用

3
我们正在尝试从PHP DOM中提取URL,但是我们尝试获取的网页具有功能(在页面加载后更改价格),因此现在我们需要用PHP Dom函数file_get_html在远程页面的onload功能完成后获得HTML。
$html = file_get_html('https://www.example.com');

// Find all article blocks
foreach($html->find('div.pad15 h4 a') as $article) {
    echo $article->innertext.'<br>';
}
foreach($html->find('p.sprc span.fb') as $pr){
        echo $pr->innertext.'<br>';
    }
$html->clear();
    unset($html);

这在 PHP Dom 中是不可能的,你需要使用像 PhantomJS 这样允许运行 JavaScript 的工具。 - apokryfos
2个回答

2
如果我正确理解您的问题,那么您的问题是在加载js之后获取html。这是不可能的,因为php会一次性打开连接并获取数据。

1

关于你的问题,答案是“不行”

PHP无法接收JavaScript渲染的结果。JavaScript在浏览器端运行,与PHP不兼容。

另一种方法是使用

http://phantomjs.org/

var page = require('webpage').create();
page.open('http://google.com', function () {
    console.log(page.content);
    phantom.exit();
});

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接