Я пытаюсь получить некоторые данные с веб-сайта, содержащего html с node.js. Однако ответ искажен, например, such ӭǰ ѡ Apple.
Может кто-нибудь сказать мне, как я могу сделать, чтобы решить это?
Большое спасибо!
Я пробовал, как показано ниже.
веб-сайт введите описание ссылки здесь
const urlLib = require('url');
const dataLib = require('./data');
dataLib.getUrl(website url,(buffer)=>{
console.log('done',buffer.toString('utf-8'));
},()=>{
console.log('error')
})
Вот данные.js
const urlLib = require('url');
exports.getUrl = function(sUrl, success, error) {
_req(sUrl);
function _req(sUrl){
let obj = urlLib.parse(sUrl);
let mod = null;
if (obj.protocol == 'http:') {
mod = require('http')
} else {
mod = require('https')
}
let req = mod.request({
hostname: obj.hostname,
path: obj.path
}, res => {
if (res.statusCode == 200) {
let arr = [];
res.on('data', (buffer) => {
arr.push(buffer)
});
res.on('end', () => {
let b = Buffer.concat(arr)
success && success(b)
})
} else if (res.statusCode == 301 || res.statusCode == 302) {
_req(res.headers['location'])
} else {
console.log(res.statusCode)
error && error();
}
})
req.on('error', (err) => {
console.log( err)
error && error(err)
})
req.end()
}
}