在 nodejs 中使用 cheerio 加载特定 HTML?
Load specific HTML by using cheerio in nodejs?
我需要从给定网页获取所有 <a>
标签 url。而且我还需要避免 header 和页脚标签之间的 <a>
标签。我正在加载 body 标签 html 但没有 header 标签。这是我的代码,但它不起作用。
var $ = cheerio.load(html);
$ = cheerio.load($('body').not('header'));
var links = $("a']");
links.each(function() {
console.log($(this).attr('href'));
});
如果上面的代码是错误的,请建议如何去做?
我认为错误是因为您没有在第二次加载时加载 HTML。您正在加载 body 对象。你应该可以这样做:
var $ = cheerio.load(html);
$ = cheerio.load($('body').html());
$('header').remove();
console.log($.html());
Cheerio 的工作方式与 jQuery 相同。
var $ = cheerio.load(html);
var links = $('body').not('header').find('a');
// $('body:not(header) a') may also work.
links.each(function() {
console.log(this.href);
});
我确实喜欢这个,现在它工作正常...谁能告诉我这是正确的方法吗?...
var $ = cheerio.load(body);
var t = $('body');
t.children('header').remove();
t.children('footer').remove();
var t = $.html(t);
var $ = cheerio.load(t);
var links = $("a");
links.each(function() {
console.log($(this).attr('href'));
});
谢谢,
我需要从给定网页获取所有 <a>
标签 url。而且我还需要避免 header 和页脚标签之间的 <a>
标签。我正在加载 body 标签 html 但没有 header 标签。这是我的代码,但它不起作用。
var $ = cheerio.load(html);
$ = cheerio.load($('body').not('header'));
var links = $("a']");
links.each(function() {
console.log($(this).attr('href'));
});
如果上面的代码是错误的,请建议如何去做?
我认为错误是因为您没有在第二次加载时加载 HTML。您正在加载 body 对象。你应该可以这样做:
var $ = cheerio.load(html);
$ = cheerio.load($('body').html());
$('header').remove();
console.log($.html());
Cheerio 的工作方式与 jQuery 相同。
var $ = cheerio.load(html);
var links = $('body').not('header').find('a');
// $('body:not(header) a') may also work.
links.each(function() {
console.log(this.href);
});
我确实喜欢这个,现在它工作正常...谁能告诉我这是正确的方法吗?...
var $ = cheerio.load(body);
var t = $('body');
t.children('header').remove();
t.children('footer').remove();
var t = $.html(t);
var $ = cheerio.load(t);
var links = $("a");
links.each(function() {
console.log($(this).attr('href'));
});
谢谢,