【发布时间】:2015-11-13 16:02:50
【问题描述】:
我正在使用 casperJS 在单击按钮时获取链接。链接通过 javaScript 中的 window.open 返回。
我编写的代码在单击按钮后记录了所有页面,但幻象没有在终端窗口中退出。还有一些页面只显示:空白,尤其是最后一个。
var casper = require('casper').create();
var page = require('webpage').create();
var address = 'http://www.example.com';
page.open(address, function() {
page.onPageCreated = function(newPage) {
newPage.onClosing = function(closingPage) {
console.log('A child page is closing: ' + closingPage.url);
/* if i set phantom.exit() it will only log the first page url.
Problem: I need all page urls. */
}
}
page.evaluate(function() {
$(".button").click();
});
}
【问题讨论】:
-
也许 about:blank 会导致幻象无法退出。
-
如果我对您的理解正确,您正在单击一个按钮 (
$(".button").click();),它会打开一个新的弹出窗口/窗口 (newPage),其中应该包含一个列表(在newPage内容中) URL 并且您正在尝试记录它们。我没有看到您试图在脚本中检索它的位置。在我看来,newPage实际上也是closingPage。弹窗的 URL 与弹窗内容中的 URL 列表有什么关系。请edit您的问题更清楚。另外,如果可以使用 CasperJS 代码,为什么还要编写 PhantomJS 代码?
标签: javascript web-scraping phantomjs casperjs window.open