我有一个下载的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">我需要找到表user_list的每个<tr class="trodd">和<tr class="treven">条目并检索href。这是我现在拥有的代码,它只返回一个空数组。我不能理解的一件事是,cheerio是否能够找到像这样的每个class="list_album",或者您必须在文件的层次结构中使用一堆$( )。
var cheerio = require("cheerio");
var file = "...path...";
var links = [];
var $ = cheerio.load(file);
$('list_album').each( function () {
var link = $(this.attr('href'));
links.push({"link": link});
});
console.log(links);发布于 2017-06-13 09:03:36
我这样做了,它对我很有效:
确保使用$(value)而不是$(this)
$('.list_album').each( (index, value) => {
var link = $(value).attr('href');
links.push({"link": link});
});发布于 2014-08-22 09:07:23
我没有足够的名气来评论,所以我会在这里回答。这似乎是一个打字错误,选择器和$包装器上的‘点’。尝尝这个。
$('.list_album').each( function () {
var link = $(this).attr('href');
links.push({"link": link});
});发布于 2017-01-25 04:21:16
我没有名气来评论,但可能会帮助someone.OP没有在给定的代码片段中添加点。代替$('list_album'),需要使用$('.list_album').Here点运算符是类选择器。
https://stackoverflow.com/questions/25438048
复制相似问题