2017-11-21 13 views
0

1000 개 이상의 URL 목록에서 웹 페이지의 본문을 가져오고 싶습니다. (내 목표는 cheerio를 사용하여 근근이 살아가는 것입니다.) 문제는 내가 이상한 GUNZIP 결과을 얻었고 body 태그의 내용을 가져올 수 없다는 것입니다. 이node js 비동기 요청이 웹 페이지의 본문을 가져 오지 않습니다.

var async = require('async'); 
var fetch = require('isomorphic-unfetch'); 
const cheerio = require('cheerio'); 

let urls= // reading a list of ~1000 URLs from JSON file 

async.mapLimit(urls, 1, async function(url) { 
    const response = await fetch(url); 
    return response.body 
}, (err, results) => { 
    if (err) throw err 
    console.log(results); 
}); 
+0

더 많은 정보가 필요하다고 생각합니다. 예를 들어 이상한 gunzip 결과는 무엇입니까? 이 모든 것이거나 하나의 URL입니까? 이것과 관련이있을 수 있습니다 : [link] (https://stackoverflow.com/questions/12148948/how-do-i-ungzip-decompress-a-nodejs-requests-module-gzip-response-body) –

답변

0

문제는 내가 이상한 풀어서 결과를 얻을 수 있다는 것입니다 내가 사용 코드 (가 어떤 요청를 벗어났습니다 원인 나는 간단한 "요청"을 사용하지 못할를)입니다

사용 ZLIB,

var zlib = require('zlib'); 


async.mapLimit(urls, 1, async function(url) { 
    const response = await fetch(url); 

    zlib.gunzip(response.body, function(err, dezipped) { 
     return (dezipped.toString()); 
    }); 
}, (err, results) => { 
    if (err) throw err 
    console.log(results); 
}); 


다음 안녕하여 구문 분석을 purseed :
도움이되기를 바랍니다.