Javascript CasperJS在每个URL中循环
这个问题是,但我遇到的问题更基本 这是我的代码:Javascript CasperJS在每个URL中循环,javascript,Javascript,这个问题是,但我遇到的问题更基本 这是我的代码: var links = []; var casper = require('casper').create(); function getLinks() { var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a'); return Array.prototype.map.call(links, fu
var links = [];
var casper = require('casper').create();
function getLinks() {
var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a');
return Array.prototype.map.call(links, function(e) {
return 'https://en.wikipedia.org' + e.getAttribute('href');
});
}
casper.start('https://en.wikipedia.org/wiki/David_Bowie_discography');
casper.then(function() {
// aggregate results for the 'casperjs' search
links = this.evaluate(getLinks);
});
casper.each(links, function (self, link) {
self.thenOpen(fullURL, function () {
this.echo(this.getTitle() + " - " + link);
});
});
casper.run();
我知道links
是在从中复制时创建的,但随后我对其进行了修改,以打开找到的所有链接
我得到的是,没有什么是回声,而不是输出每个标题,这是我所期望的。以下是我调用该文件的方式:
~ $ casperjs casper-google-disco.js
最终修复非常简单,但我花了很长时间才找到,因为没有错误,而且似乎没有其他人碰到过 问题是在调用
每个
之前,没有设置链接
变量。将每个
放在中,然后
函数解决了我的问题
CasperJS示例中的示例有助于确认您可以在不需要任何验证的情况下通过数组进行循环
最终修复非常简单,但我花了很长时间才找到,因为没有错误,而且似乎没有其他人碰到过 问题是在调用
每个
之前,没有设置链接
变量。将每个
放在中,然后
函数解决了我的问题
CasperJS示例中的示例有助于确认您可以在不需要任何验证的情况下通过数组进行循环
var links = [];
var casper = require('casper').create();
function getLinks() {
var links = document.querySelectorAll('div#mw-content-text table.wikitable tbody tr td i b a');
return Array.prototype.map.call(links, function(e) {
return 'https://en.wikipedia.org' + e.getAttribute('href');
});
}
casper.start('https://en.wikipedia.org/wiki/David_Bowie_discography');
casper.then(function() {
// aggregate results for the 'casperjs' search
links = this.evaluate(getLinks);
casper.each(links, function (self, link) {
self.thenOpen(link, function () {
this.echo(this.getTitle() + " - " + link);
});
});
});
casper.run();