使用PhantomJS下载网页

时间:2015-05-05 06:12:01

标签: javascript html cookies popup phantomjs

我正在尝试使用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弹出?

  

enter image description here

2 个答案:

答案 0 :(得分:1)

好吧,在脚本中使用cookie(存储在我的浏览器中)可以解决问题。有关详细信息,请查看:http://phantomjs.org/api/webpage/method/add-cookie.html

答案 1 :(得分:1)

像这样的Cookie模式对话框现在很常见。您几乎总能关闭这些对话框。关闭它的关闭按钮上的Click

仅仅因为存在此模型对话框,并不意味着您无法访问其背后的DOM。标记仍然存在(除了可能缺少的标记,因为TypeError)。

出现该错误消息,因为页面JavaScript使用了PhantomJS 1.x中未实现的某些功能。如果你使用PhantomJS 2它会消失。