我尝试获取img源代码,但一直未定义
<table id="video_jacket_info">
<tbody>
<tr>
<td style="vertical-align: top;">
<div id="video_jacket">
<img id="video_jacket_img" src="link.image.com" border="0"></div>
<!-- end of video_jacket -->
</td>
</tr>
</tbody>
</table>
我获取图像的代码总是返回undefined
axios.get(baseUrl).then(response => {
let $ = cheerio.load(response.data, { ignoreWhitespace: true, xmlMode: true });
console.log($('table.video_jacket_info > .video_jacket_img').attr('src'));
// I followed @JJJ comment but still return undefined
console.log($('table.video_jacket_info .video_jacket_img').attr('src'));
});
}).catch(err => {
console.log(err);
});
1条答案
按热度按时间wfveoks01#
两个问题:
>
表示CSS选择器中的"直接子项"。空格表示"任何后代"。删除>
。.
表示类。#
表示id。这里我们需要后者。进行这些更改后,选择器变为
#video_jacket_info #video_jacket_img
。然而,由于id是唯一的,你可以将选择器简化为
#video_jacket_img
,添加的父上下文并不能消除任何歧义,而且会使选择器更脆弱,因为站点可能会更改或删除父上下文。