我想从这个无序列表中的每个li
中提取2个元素:
<ul class="cookieAlertList padTop10">
<li>
<img src="images/cookieradar/iconHot.gif" />
<div class="cookieAlertDesc">
<a href="/P.aspx?p=16aa6d76104">
Peanut Butter Chocolate Chunk
</a>
<br />
<small>44 mins ago</small>
</div>
</li>
<li>
<img src="images/cookieradar/iconHot.gif" />
<div class="cookieAlertDesc">
<a href="/P.aspx?p=15936a56102">
Oatmeal Wheatgerm Chocolate Chip
</a>
<br />
<small>48 mins ago</small>
</div>
</li>
</ul>
对于每个列表项,id都要提取cookie名称(包含在元素中)和元素中包含的时间。
我能够使用以下方法提取2个列表项:
var li = $('.cookieAlertList').find('li');
但不确定如何继续。
答案 0 :(得分:2)
像这样:
var cheerio = require('cheerio');
// some HTTP Requests to scrape the page content..
var $ = cheerio.load(html);
var result = [];
$('ul.cookieAlertList li').each(function(el) {
var $div = $(el).find('div.cookieAlertDesc');
var obj = {
cookieName: $div.find('a').text(),
time: $div.find('small').text()
};
result.push(obj);
});
console.log('result', result); // JSON.stringify(result, null, 3);