使用casperjs从页面获取所有链接
Use casperjs to get all links from a page
我需要使用casperJS和phantomJS只从a
href
属性和img
src
以http,https,ftp或ftps开始的链接(我想这是应该使用的正则表达式:((http|https|ftp|ftps):'/'/[^"]+)"/g)
.
我实现了仅从a
标签获取链接的代码,但我需要改进它,以便从与正则表达式匹配的img
标签获得链接…
var casper = require('casper').create();
var links;
function getLinks() {
var links = document.querySelectorAll('img');
return Array.prototype.map.call(links, function (e) {
return e.getAttribute('src')
});
}
casper.start('https://marvel.com');
casper.then(function () {
links = this.evaluate(getLinks);
});
casper.run(function () {
for(var i in links) {
console.log(links[i]);
}
casper.done();
});
字符串提供match
函数,您可以根据该函数对正则表达式求值。它以数组形式返回匹配项,如果没有匹配项则返回null
。
casper.then(function(){
var regex = /((http|https|ftp|ftps):'/'/[^"]+)"/g)/;
var srcs = this.getElementsAttribute("img", "src").filter(function(src){
return !!src.match(regex);
});
srcs.forEach(function(src){
console.log(src);
});
});
这个正则表达式看起来不太合适,所以我使用var regex = /^(ht|f)tps?:'/'//;
相关文章:
- 通过mvc中的ajax动作链接获取关于成功的响应头
- 使用Java从javascript链接获取html更改
- 从javascript onClick超链接获取内容
- 如何使用javascript从类中的链接获取标题属性
- Jquery为链接获取不同的输入隐藏值
- 点击jQuery的链接获取请求
- 从动态href链接获取值
- 如何在页面刷新后链接获取焦点
- 从Angular.js中的自定义链接获取URL参数
- 如何将我的链接获取到变量中
- 如何使用Javascript从这个链接获取formatted_phone_number ?
- 使用Javascript通过链接获取并发送文本值
- 在同一页面中使用onClick功能从链接获取值
- 使用jQuery / JavaScript从超链接获取完整的URL
- 从文本链接获取URL参数,并将其发送到AJAX调用
- 谷歌地图API锚链接获取位置
- 通过jQuery从JSON的外部链接获取数据
- 无法从外部链接获取img src
- 从文本链接获取标题值
- 从链接获取javascript中的变量