gpt4 book ai didi

javascript - CasperJS 评估函数不返回数组

转载 作者:太空宇宙 更新时间:2023-11-04 16:13:15 24 4
gpt4 key购买 nike

注意,我已经看过:

Understanding the evaluate function in CasperJS

我正在尝试编写一个简单的网络抓取工具来下载教授网页上的所有 pdf 文件。

这是我的代码:

var casper = require('casper').create({verbose: true , logLevel: "debug" });
var url = "https://www.cs.rit.edu/~ib/Classes/CSCI264_Fall16-17/assignments.html";
casper.start(url);

var elements;
try {
casper.then(function(){
try {
// statements
elements = this.evaluate(function(){ return __utils__.findAll('body ul li a'); });
console.log("elements: " + elements);
console.log(this.getCurrentUrl());

} catch(e) {
// statements
console.log(e);
}
});
} catch(e) {

console.log(e);
}
casper.run();

返回的 elements 数组大小始终为零,但是当我输入

__utils__.echo(__utils__.findAll('body ul li a').length);

我得到了正确数量的链接。

这是因为评估函数不会返回元素数组吗?

如有任何帮助,我们将不胜感激。

最佳答案

只需使用原生js方法而不是casperjs提供的__utils__,例如:

elements = this.evaluate(function(){ return document.querySelectorAll('body ul li a'); });

我不确定为什么 findAll 不起作用。

关于javascript - CasperJS 评估函数不返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41290403/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com