我正在尝试获取StackOverflow中的href问题和链接标题问题。所以我写这些代码:
const casper = require("casper").create();
const links = [];
function getLinksInfo() {
const linksDOM = document.querySelectorAll("a.question-hyperlink");
return Array.prototype.map.call(linksDOM, function(e) {
return { title: e.getAttribute("outerText"), link: e.getAttribute("href") };
});
}
casper.start("https://stackoverflow.com/", function() {
this.waitForSelector("div#question-mini-list");
});
casper.then(function() {
links.concat(this.evaluate(getLinksInfo));
});
casper.run(function() {
// echo results in some pretty fashion
this.echo(links.length + " links found:");
this.echo(" - " + links.join("\n - ")).exit();
});
“ div#question-mini-list”是div的ID,它包含主页中的所有问题,“ a.question-hyperlink”是我要获取它们的链接。当我在Chrome开发人员工具中运行此查询时:
document.querySelectorAll("a.question-hyperlink");
它给了我正确的节点,但是在Casper中,它什么也没返回?实际上,链接数组的长度为零,我不知道问题出在哪里?