使用cheerio从ul中提取2个元素

时间:2016-05-24 21:06:01

标签: javascript jquery node.js cheerio

我想从这个无序列表中的每个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');

但不确定如何继续。

1 个答案:

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