Cheerio在一个href中从json获取图像

时间:2016-04-30 16:57:05

标签: javascript json node.js

我在Node.js中使用cheerio模块来解析网页。我有一个问题,因为我想解析这段代码:

<div class="offer-photo" data-photo-urls='[{"small":"http://img02.allegroimg.pl/photos/64x48/61/16/25/71/6116257188","medium":"http://img02.allegroimg.pl/photos/400x300/61/16/25/71/6116257188"}]'>
        <a href="http://allegro.pl/klasyczne-okulary-lenonki-lustrzanki-kolory-etui-i6116257188.html" class="inner lazy-load" data-src="http://img02.allegroimg.pl/photos/128x96/61/16/25/71/6116257188">

        <noscript>
            <img src="http://img02.allegroimg.pl/photos/128x96/61/16/25/71/6116257188" alt="" />
        </noscript>

        </a>

    </div>

如何从此代码中使用Cheerio获取图像?

1 个答案:

答案 0 :(得分:1)

获取元素,然后使用.data()方法获取数据属性,并解析JSON

var cheerio = require('cheerio'),
$ = cheerio.load(html);

var element = $('.offer-photo').first();
var data    = element.data('photo-url');
var obj     = JSON.parse(data);

data-attribute似乎是唯一包含JSON的东西,而不是来自锚点的href,它只包含一个可以获得的URL?

var href = element.find('a').attr('href');