javascript - 如何在CasperJS中获取href属性值?

标签 javascript attributes web-crawler casperjs

这是我使用代码来获取元素内的 href 值的操作:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].getAttribute('href')+'"');
    else
        this.echo(',"'+info[i].getAttribute('href')+'"');
}

最佳答案

我在 documentation 中找到了一些东西我可以用这样的代码解决我的问题:

var info = this.getElementsInfo(selector); // an array of object literals
for (var i = firstp; i < info.length; i=i+interval) {
    if(i==0)
        this.echo('"'+info[i].attributes.href+'"');
    else
        this.echo(',"'+info[i].attributes.href+'"');
}

现在可以使用了。

之前使用 getAttribute 不起作用的原因是 casper.getElementsInfo()返回 DOM 节点的普通对象表示,而不是实际的 DOM 节点。由于 CasperJS(以及 PhantomJS)有两个上下文,因此 DOM 节点无法从页面上下文(在 casper.evaluate() 内)传递出去。

关于javascript - 如何在CasperJS中获取href属性值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27716112/

相关文章:

python - Scrapy 没有以正确的顺序执行

javascript - 具有相同 id 错误的 div

javascript - 只要按下特定键就循环运行函数

c# - 创建推断 ResourceType 的自定义 DisplayAttribute

r - 从 Stata 的避难所导入的 "labeled"tibble 列中提取标签属性

seo - 在 robots.txt 中只允许抓取共享主机上的子域而不是子目录?

asp.net - 如何以编程方式确定是否已安装 ActiveX 控件,以及它或整个 ActiveX 是否已被禁用?

javascript - 在 blogger 中使用 Javascript 和 if/else 语句来隐藏某些元素

javascript - 通过索引分配属性的最佳方法是什么

python - Scrapinghub 在信号处理程序 : <bound method ? 上捕获错误