更新 2添加了有关如何从 PHP 使用的更多详细信息。phantomjs
更新1(在澄清目标页面上的javascript需要首先运行之后)
方法1:使用phantomjs(将执行javascript);
1. 下载 phantomjs 并将可执行文件放在 PHP 二进制文件可以访问的路径中。
2. 将以下 2 个文件放在同一目录中:
获取网站.php
<?php
$phantom_script= dirname(__FILE__). '/get-website.js';
$response = exec ('phantomjs ' . $phantom_script);
echo htmlspecialchars($response);
?>
获取网站.js
var webPage = require('webpage');
var page = webPage.create();
page.open('http://google.com/', function(status) {
console.log(page.content);
phantom.exit();
});
3.浏览到目标站点,内容将在执行内联javascript后返回。您也可以使用 从命令行调用它。get-website.php
http://google.com
php /path/to/get-website.php
方法2:将Ajax与PHP一起使用(没有phantomjs,所以不会运行javascript);
/get-website.php
<?php
$html=file_get_contents('http://google.com');
echo $html;
?>
测试.html
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>on demo</title>
<style>
p {
color: red;
}
span {
color: blue;
}
</style>
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<button id='click_me'>Click me</button>
<span style="display:none;"></span>
<script>
$( "#click_me" ).click(function () {
$.get("/get-website.php", function(data) {
var json = {
html: JSON.stringify(data),
delay: 1
};
alert(json.html);
});
});
</script>
</body>
</html>