尝试获取链接时,CasperJS不返回任何内容

时间:2019-04-01 10:10:47

标签: web-scraping phantomjs casperjs

我正在尝试获取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中,它什么也没返回?实际上,链接数组的长度为零,我不知道问题出在哪里?

0 个答案:

没有答案