登录  /  注册
node.js - 使用 superagent 抓取 UTF-8网站乱码
天蓬老师
天蓬老师 2017-07-06 10:35:50
[Node.js讨论组]

我使用 superagent + cheerio 去抓取*东的商品 但是返回的中文乱码 响应头如下
是经过 gzip压缩的 但是按道理 superagent好像会默认解压

*东商品地址https://item.jd.com/5025518.html

我取了商品标题 结果如下

核心代码如下:

var url = 'https://list.jd.com/list.html?cat=670,671,672' //京东电脑
var totalData = [] // 存储总数据
superagent.get(url).end(function (err, res) {
    if (err) {
        return console.error(err)
    }
    var topicUrls = [];  // 页面里面的所有url
    var $ = cheerio.load(res.text) // 拿到页面
    $('#plist .gl-item').each(function (i, e) {
        $e = $(e)
        var href = 'https:' + $e.find('.p-img >a').attr('href') // 拿到所有url
        topicUrls.push(href)
    })

    var ep = new eventproxy();//
    //异步调用结束后,执行某些操作
    ep.after('topic_html', topicUrls.length, function (topics) { //接收res.text
        topics = topics.map(function (topicHtml) {
            var $ = cheerio.load(topicHtml, {decodeEntities: false});
            return ({
                title: $('.sku-name').text().trim()
            });
        });
        totalData.push(topics)
        console.log(totalData);
    })
    topicUrls.forEach(function (e) {
        superagent.get(e).end(function (err, res) {
            ep.emit('topic_html', res.text);
        })
    })


})
天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号