Maison  >  Questions et réponses  >  le corps du texte

node.js - Utilisez Superagent pour capturer les caractères tronqués du site Web UTF-8

J'ai utilisé superagent + cheerio pour explorer les produits *Dong, mais les en-têtes de réponse chinois tronqués renvoyés sont les suivants
Il est compressé par gzip, mais il va de soi que superagent le décompressera par défaut

*Adresse du produit Est https://item.jd.com/5025518.html

J'ai pris le titre du produit et les résultats sont les suivants

Le code de base est le suivant :

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);
        })
    })


})
天蓬老师天蓬老师2686 Il y a quelques jours1374

répondre à tous(2)je répondrai

  • phpcn_u1582

    phpcn_u15822017-07-06 10:37:50

    Ce n'est pas du code tronqué. S'il s'agit d'un code tronqué, tout est foiré. Cela devrait être un problème avec votre encodage.

    répondre
    0
  • 代言

    代言2017-07-06 10:37:50

    J'ai directement utilisé Postman pour demander votre adresse, et votre situation n'est pas apparue, j'ai donc jugé qu'il s'agissait d'un problème avec votre IDE ou votre éditeur de texte, et j'ai défini le format sur utf-8.

    répondre
    0
  • Annulerrépondre