如何模拟JS启用的浏览器?

时间:2013-08-28 19:48:14

标签: javascript browser scripting

我需要使用脚本(PHP,Python,Bash)下载网页而不使用GUI浏览器。问题是网页检查前面是它处理JS启用浏览器。所以我从给定的URL使用天真的下载是初始页面(在这种情况下,我想到Coursera课程页面:http://pastebin.com/4tJJRMTu)。

如何使用脚本下载“真实”内容?到目前为止,我可以考虑这样的解决方案(一些疯狂的解决方案):

  • 弄清楚启动页面上的JS是什么,并在我的脚本中模仿这个,可能是在加载另一个页面
  • 使用Wireshark扫描网络流量,并找到请求页面ABC1.html最终获取页面ABC1body.html
  • 的模式
  • 而不是本机(针对给定语言)下载功能启动外部浏览器只需下载页面(exec Firefox --dump http://foo.bar/x.html - 我正在进行此操作,我甚至不知道是否有带脚本功能的浏览器)

还有其他想法吗?我会很感激经过测试的。

删除脚本而不是编写浏览器插件也是其中一个选项,但是因为我现在已经花了一些时间来编写脚本,所以修复它们似乎更快,而是从头开始编写它们。

1 个答案:

答案 0 :(得分:2)

看看PhantomJS。它本质上是一个无头浏览器,模仿所有功能。

使用node和phantomjs模块,您可以下载页面并完全控制它,包括完全访问JavaScript。

var page = require('webpage').create();
var url = 'http://www.phantomjs.org/';
page.open(url, function (status) {
    //Page is loaded!
    phantom.exit();
});