javascript - Cheerio 从 href 中的 json 获取图像

标签 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 从此代码获取图像?

最佳答案

获取元素,然后使用.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);

数据属性似乎是唯一包含 JSON 的东西,而不是来自 anchor 的 href,它只包含一个 URL,可以通过 获取?

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

关于javascript - Cheerio 从 href 中的 json 获取图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36957647/

相关文章:

javascript - 在 Phonegap 或 Cordova 中发送多条短信

javascript - 无需测试即可检测脚本延迟支持

sql - LINQ to SQL 输出与预期不同,如何解决?

javascript - Sequelize HasMany BelongsToMany 删除旧引用

json - 有没有办法通过改变PM2中的环境来切换cwd - node.js

javascript - 上次尝试失败后连接后 Socket.io 事件不会触发

Javascript 和 mathjax ascii

javascript - 如何使用 Cal-Heatmap 创建类似 Github 的连续日历?

java - 为什么 null 不等于 null?

javascript - Object.assign 返回未定义