我的请求从一个页面获取多个标签,并对它们进行一些字符串操作。我的问题是只选择一个字符串。我的输出是
string 1
string 2
string 3
etc...
我只想举例
string 2
当我做类似console.log(a[2])
的操作时,我会得到第二个't' in 'http'
如何根据请求使用以下代码进行操作
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
//parse to find cards
$('div.card').each(function(i, element){
//find all links
a = ($(this).find('a').attr('href'));
a = a.split('/')[3];
//construct new string
visiting = "http://api.website.com/stuff/"+a
console.log(a);
});
};
});
答案 0 :(得分:0)
试试这个
据我了解,您需要在数组中添加所有标签,然后才能通过索引获取元素
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
//parse to find cards
var a=[];
$('div.card').each(function(i, element){
tag = $(this).find('a').attr('href').split('/')[3]
//construct new string
visiting = "http://api.website.com/stuff/"+tag
a.push(tag);
});
console.log(a[2]);
};
});
//编辑1
您可以使用此功能
function getRandomInt(max) {
return Math.floor(Math.random() * Math.floor(max));
}
您的代码如下:
request(url, function (error, response, html) {
if (!error && response.statusCode == 200) {
var $ = cheerio.load(html);
//parse to find cards
var a=[];
$('div.card').each(function(i, element){
tag = $(this).find('a').attr('href').split('/')[3]
//construct new string
visiting = "http://api.website.com/stuff/"+tag
a.push(tag);
});
//get random tag
console.log(a[getRandomInt(a.length)]);
};
});