Два очень детских вопроса от новичка...
Есть задача получить на js нескольких страниц... Без вяких библиотек. Чистое nodejs, раз никак не получится такое на чистом js
Читаю мануал... И делаю
const https = require('https')
function readURL(url) {
return new Promise((resolve, reject) => {
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('адрес страницы')
.then(data =>
console.log(data)
)
.catch(err =>
console.log(err.message)
)
Все работает так как надо, но страница формируется через JS, и я получаю её код без постобработки... Спрашиваетcя, а как в синхронном режиме получить то что отображается в браузере? И сразу в тему второй.... Если нужна будет регистрация на сайте, то как в таком случае вводить имя пользователя и пароль...... Как я понимаю регистрация и получение страниц по адресу, в этом случае будет разные операции.. Извиняюсь, что не понимаю элементарные вещи.... |
Цитата:
Что бы это получить надо получать страницу в браузере. Node не работает с html, css и javascript скрипты у него свои. Возможно, для Node есть какие то библиотеки, производящие парсинг html, имитирующие работу DOM и манипуляции с ним. |
Цитата:
А для nodejs есть jsdom, но его просто функционал избыточен и не хочется тащить зависимости для нескольких строк кода.. |
Но если страница обрабатывается скриптом, то она работает с DOM (а не с текстом) И без DOM никуда не деться.
|
Цитата:
|
Цитата:
Мне же немного надо… Просто , по возможности компилируемую под разные платформы библиотеку на любом языке, с инкапсулирванным javascript в которой есть функция(процедура), которая берут URL и отдает в любом формате dom или строку. Дальше уже все пойдет вообще в вордоэксельный VBА, как внешняя библиотека. Все это делается на богомерзком CEF4, но настолько медленно и печально, что 10 потоков занимают больше гига оперативки, а сама процедура тянет зависимостей на 200 мб, то есть весь cef.... |
| Часовой пояс GMT +3, время: 13:09. |