Как скачать страницу сайта с помощью NodeJS?
В данной статье я покажу Вам как с помощью NodeJS можно скачать файл (в нашем случае - html-страницу) с удаленного сервера. Пригодиться это может, например, при чтении RSS ленты.
Итак, код далее:
const https = require('https')
// функция загружает удаленный URL
function readURL(url) {
// возвращаем Promise - так как операция чтения может длиться достаточно долго
return new Promise((resolve, reject) => {
// встроенный в NodeJS модуль https
// первый аргумент - url, второй - callback c параметром ответа сервера
https.get(url, (res) => {
// получаем статус ответа сервера посредством деструктуризации объекта
const { statusCode } = res;
let error;
if (statusCode !== 200) {
error = new Error(`Ошибка запроса. Код ответа: ${statusCode}`);
}
// при ошибке очищаем память и выходим
if (error) {
reject(error);
res.resume();
return;
}
// устанавливаем кодировку
res.setEncoding('utf8');
// собираем данные в строку
let rawData = '';
res.on('data', chunk => rawData += chunk);
// после получения всех данных успешно завершаем Промис
res.on('end', () => resolve(rawData));
}).on('error', (e) => reject(e)); // ошибка -> отклоняем Промис
})
}
Вызываем так
readURL('http://example.com')
.then(data =>
console.log(data)
)
.catch(err =>
console.log(err.message)
)
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.