我正在尝试获取元素的所有值
var request = require('request');
var cheerio = require('cheerio');
var url = "https://www.mismarcadores.com";
request(url, function(err, resp, body) {
if (err) throw err;
var $ = cheerio.load(body);
var addUrl= [];
$('a').each(function (i, element) {
var a = $(this);
var href = a.attr('href');
addUrl.push(href);
})
console.log(array[0]);
})
我有这样的代码,添加链接,阵列称为addUrl,这个完美的作品,但现在我正在寻找如何添加到该数组如果URL中包含的HREF词“baloncesto”。
好例子:https://www.mismarcadores.com/baloncesto/alemania/
此网址很好,但
错误示例:https://www.mismarcadores.com/golf/
这是错误的。
我正在使用NodeJS开发这个,但这只是一个简单的javascript,现在我不知道如何制作它。
有人可以帮帮我吗?
答案 0 :(得分:0)
you can try this
if(href.contains('baloncesto')){
addUrl.push(href);
}
答案 1 :(得分:0)
好的,所以你要找的是模式匹配 - 如果href
包含字符串baloncesto
。我怀疑this SO thread会对你有所帮助 - 你基本上想要嵌套这一行 -
addUrl.push(href);
- 在if
语句中,如
if(href.includes('baloncesto')) {
addUrl.push(href);
}
...但请务必查看其他答案以供参考,以防您使用旧版本且与ES6不兼容的JS版本。
答案 2 :(得分:0)
试试这个
var request = require('request');
var cheerio = require('cheerio');
var url = "https://www.mismarcadores.com";
request(url, function(err, resp, body) {
if (err) throw err;
var $ = cheerio.load(body);
var addUrl= [];
$('a').each(function (i, element) {
var a = $(this);
var href = a.attr('href');
if (decodeURIComponent(href).contains('baloncesto')){
addUrl.push(href);
} else {
//do something else
}
})
console.log(array[0]);
})
答案 3 :(得分:0)
请尝试这样:
var request = require('request');
var cheerio = require('cheerio');
var url = "https://www.mismarcadores.com";
var filterStr = 'baloncesto';
request(url, function(err, resp, body) {
if (err) throw err;
var $ = cheerio.load(body);
var addUrl= [];
$('a').each(function (i, element) {
var href = $(this).attr('href');
if (href.indexOf(filterStr) > -1 ) addUrl.push(href);
})
console.log(addUrl);
})