Javascript 如何模拟支持JS的浏览器?
我需要下载一个网页使用脚本(PHP,Python,Bash),而不是使用GUI浏览器。问题在于网页的前端检查是否涉及支持JS的浏览器。所以,我从给定URL使用naive下载得到的只是初始页面(在本例中,我想到的是Coursera课程页面:) 如何使用脚本下载“真实”内容?到目前为止,我能想到这样的解决方案(一些疯狂的):Javascript 如何模拟支持JS的浏览器?,javascript,browser,scripting,Javascript,Browser,Scripting,我需要下载一个网页使用脚本(PHP,Python,Bash),而不是使用GUI浏览器。问题在于网页的前端检查是否涉及支持JS的浏览器。所以,我从给定URL使用naive下载得到的只是初始页面(在本例中,我想到的是Coursera课程页面:) 如何使用脚本下载“真实”内容?到目前为止,我能想到这样的解决方案(一些疯狂的): 弄清楚启动页面上的JS是做什么的,并在我的脚本中模拟它,可能会加载另一个页面 使用Wireshark扫描网络流量,并找到一种模式,该模式使得对页面ABC1.html的请求以获
- 弄清楚启动页面上的JS是做什么的,并在我的脚本中模拟它,可能会加载另一个页面
- 使用Wireshark扫描网络流量,并找到一种模式,该模式使得对页面
的请求以获取页面ABC1.html
ABC1body.html
- 启动外部浏览器以下载页面(
——这是我编的,我甚至不知道是否有具有脚本功能的浏览器)execfirefox--dump),而不是本机(针对给定语言)下载功能http://foo.bar/x.html
var page = require('webpage').create();
var url = 'http://www.phantomjs.org/';
page.open(url, function (status) {
//Page is loaded!
phantom.exit();
});
查收-你就这么做吧。@JustinBicknell,它属于“从头开始做”类别,因为它可以解决下载问题(我想!),但我会将我的脚本的其余部分重写为JS。你可以随时将phantomjs输出传递给你以前编写的脚本——或者通过http post,或者将该文件放到文件系统中,然后删除您的代码resides@JustinBicknell好的,看起来不错,我只会等待更多的其他想法,如果没有出现的话,我会和PhantomJS一起去,谢谢。我的观点是URL可以从shell启动浏览器,其他脚本可以用PID关闭它,在中间,通过tampermonkey的浏览器可以做phantom做的任何事情,还有更多。。。