Sob*_*lic 5 node.js scrape cheerio
我试图遍历每个<ul>并获得每个的价值<li>.问题是,它只需要第一个<ul>并跳过其余部分.
HTML
<div id="browse-results">
<ul class="tips cf">
<li>tip11</li>
<li>tip12</li>
<li>tip13</li>
</ul>
<ul class="tips cf">
<li>tip21</li>
<li>tip22</li>
<li>tip23</li>
</ul>
<ul class="tips cf">
<li>tip31</li>
<li>tip32</li>
<li>tip33</li>
</ul>
<ul class="tips cf">
<li>tip41</li>
<li>tip42</li>
<li>tip43</li>
</ul>
</div>
Run Code Online (Sandbox Code Playgroud)
Cheerio解析
$('#browse-results').find('.tips.cf').each(function(i, elm) {
console.log($(this).text()) // for testing do text()
});
$('#browse-results').children().find('.tips').each(function(i, elm) {
console.log($(this).text())
});
I've tried many more
Run Code Online (Sandbox Code Playgroud)
输出只是第一个的值<ul>.
tip11
tip12
tip13
Run Code Online (Sandbox Code Playgroud)
请注意,这只是一个片段示例,其结构与我正在尝试解析的内容相同.
我花了将近2个小时,我找不到办法.
试试这个:
var cheerio = require('cheerio');
var html = '<div id="browse-results"> \
<ul class="tips cf"> \
<li>tip11</li> \
<li>tip12</li> \
<li>tip13</li> \
</ul> \
<ul class="tips cf"> \
<li>tip21</li> \
<li>tip22</li> \
<li>tip23</li> \
</ul> \
<ul class="tips cf"> \
<li>tip31</li> \
<li>tip32</li> \
<li>tip33</li> \
</ul> \
<ul class="tips cf"> \
<li>tip41</li> \
<li>tip42</li> \
<li>tip43</li> \
</ul> \
</div>';
var $ = cheerio.load(html);
$('#browse-results li').each(function(i, elm) {
console.log($(this).text()) // for testing do text()
});
Run Code Online (Sandbox Code Playgroud)
这将选择所有的li元素#browse-results.
| 归档时间: |
|
| 查看次数: |
9893 次 |
| 最近记录: |