我有一个下载的html文件,看起来像这样
<html class="theme_">
<head>
<body>
<div id="ad_1"></div>
...
<div id="wrapper">
<div id="top" style="height:11px;color:white;font-size:9px;font-weight:bold;"> </div>
...
<div id="content" style="border-top:none;">
...
<table id="user_list">
<tbody>
<tr class="trodd">
<td width="10%" valign="center" align="center">
<td class="list_art" style="width:160px;">
<td class="main_entry">
<h4>
<h5>
<a class="list_album" href="https://rateyourmusic.com/release/single/electra__ita_/feels_good__carrots_and_beets_/" title="[Album833409]">Feels Good (Carrots & Beets)</a>
<span class="rel_date">(1982) [Single]</span>
</h5>
</td>
<td></td>
</tr>
<tr class="treven">
我需要访问表<tr class="trodd">
的每个<tr class="treven">
和user_list
条目并检索href。这是我现在的代码,它只返回一个空数组。我无法掌握的一件事是,cheerio是否能够像这样找到每个class="list_album"
,或者你必须通过一堆{{{{{{{{{{{ 1}}&#39; S
$( )
答案 0 :(得分:6)
我没有足够的声誉发表评论,所以我会在这里回答。 这似乎是一个错字,选择器上的'点'和$ wrapper。试试这个。
$('.list_album').each( function () {
var link = $(this).attr('href');
links.push({"link": link});
});
答案 1 :(得分:2)
我这样做了,它对我有用:
请务必使用$(value)
代替$(this)
$('.list_album').each( (index, value) => {
var link = $(value).attr('href');
links.push({"link": link});
});
答案 2 :(得分:0)
我没有评论的声誉,但可能会帮助某人.OP没有在给定的片段中添加点。
而不是$('list_album')
,你需要使用$('.list_album')
。这里的点运算符是类选择器。
答案 3 :(得分:0)
我知道你知道我的更好的方法,但如果你喜欢我的方法或它对你的帮助,我有一些简单的方法来支持我。
概述:$
用于包装元素a[data-hover='View All Results']
是我们想要去掉的元素data-hover
是一个类,查看所有结果是类名
let $ = cheerio.load(html); //take a content from page
let anchorElem = $("a[data-hover='View All Results']");
let link = anchorElem.attr("href");
console.log(link);//Print the link