我正在尝试使用PhantomJS下载一个网页,其代码如下所示,其中"地址"是网址和" dir"是我下载网页代码的文件路径。
var system = require('system');
var page = require('webpage').create();
var fs = require('fs');
// Set the url address
address = system.args[1];
// Set the file path
var dir = system.args[2];
page.open(address, function () {
fs.write(dir, page.content, 'w');
phantom.exit();
});
这在许多网页中都能正常使用,但在这种情况下(" http://www.lefties.com/es/es/woman/zapatos-c1029521.html")我无法看到产品的href,因为当我使用phantomJS下载或没有它,下载的是带有cookie订阅的全屏弹出窗口。这无法在下载的html中找到产品href。
此外,PhantomJS在下载时显示此错误:
TypeError:' null'不是一个对象(评估' $(' PopupFullscreen')。getElementById('关闭')。setStyles')
是否有任何想法避免订阅/ cookie弹出?
答案 0 :(得分:1)
好吧,在脚本中使用cookie(存储在我的浏览器中)可以解决问题。有关详细信息,请查看:http://phantomjs.org/api/webpage/method/add-cookie.html
答案 1 :(得分:1)
像这样的Cookie模式对话框现在很常见。您几乎总能关闭这些对话框。关闭它的关闭按钮上的Click。
仅仅因为存在此模型对话框,并不意味着您无法访问其背后的DOM。标记仍然存在(除了可能缺少的标记,因为TypeError)。
出现该错误消息,因为页面JavaScript使用了PhantomJS 1.x中未实现的某些功能。如果你使用PhantomJS 2它会消失。