0

我需要使用脚本(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--我正在编造这个,我什至不知道是否有具有脚本功能的浏览器)。

还有其他想法?我会感谢测试的。

删除脚本并改为编写浏览器插件也是一种选择,但由于我现在已经花了一些时间来编写脚本,因此修复它们似乎更快,而不是从头开始编写它们。

4

1 回答 1

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();
});
于 2013-08-28T19:52:40.723 回答