用cheerio检索href

时间:2014-08-22 00:43:52

标签: javascript jquery node.js

我有一个下载的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

$( )

4 个答案:

答案 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