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

Posted

技术标签:

【中文标题】完成页面加载后调用 PHP DOM 函数 file_get_html【英文标题】:PHP DOM function file_get_html call after Complete Page load 【发布时间】:2017-07-21 19:41:53 【问题描述】:

我们正在尝试从 php DOM 获取 url,但我们尝试获取的 webapge 具有功能(在页面加载后更改价格)所以现在我们需要 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 【参考方案1】:

如果我回答正确的问题,你的问题是加载 js 后获取 html。不可能。因为php打开连接,一次性获取数据

【讨论】:

【参考方案2】:

关于你的问题的答案是“否”

php 无法接收 javascript 呈现的结果。 javascript 在浏览器端运行,而 php 无法运行。

另一种方法是用

做任务

http://phantomjs.org/

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

【讨论】:

以上是关于完成页面加载后调用 PHP DOM 函数 file_get_html的主要内容,如果未能解决你的问题,请参考以下文章

Vue 在页面加载结束后执行某个函数

从同一文件中的 HTML 表单调用 PHP 函数

DOM加载完毕之后执行js

图片,音频资源预加载和文档dom加载

document load 与document ready的区别

js相关 页面数据加载完后 如何调用函数