Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.07.2022, 17:17
Новичок на форуме
Отправить личное сообщение для beria Посмотреть профиль Найти все сообщения от beria
 
Регистрация: 21.07.2022
Сообщений: 4

Два очень детских вопроса от новичка...
Есть задача получить на 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я, а как в синхронном режиме получить то что отображается в браузере?
И сразу в тему второй.... Если нужна будет регистрация на сайте, то как в таком случае вводить имя пользователя и пароль...... Как я понимаю регистрация и получение страниц по адресу, в этом случае будет разные операции..
Извиняюсь, что не понимаю элементарные вещи....
Ответить с цитированием
  #2 (permalink)  
Старый 21.07.2022, 17:45
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от beria
Спрашиваетcя, а как в синхронном режиме получить то что отображается в браузере?
В браузере отображается страница после парсинга html кода, работы скриптов, рендеринга и визуализации.
Что бы это получить надо получать страницу в браузере.
Node не работает с html, css и javascript скрипты у него свои.

Возможно, для Node есть какие то библиотеки, производящие парсинг html, имитирующие работу DOM и манипуляции с ним.

Последний раз редактировалось voraa, 21.07.2022 в 17:50.
Ответить с цитированием
  #3 (permalink)  
Старый 21.07.2022, 17:59
Новичок на форуме
Отправить личное сообщение для beria Посмотреть профиль Найти все сообщения от beria
 
Регистрация: 21.07.2022
Сообщений: 4

Сообщение от voraa Посмотреть сообщение
В браузере отображается страница после парсинга html кода, работы скриптов, рендеринга и визуализации.
Что бы это получить надо получать страницу в браузере.
Node не работает с html, css и javascript скрипты у него свои.
Мне не нужен рендеринг и визуализация. Мне даже формальный DOM не нужен. Только само содержимое в любом формате. Там дальше я уже сам разберусь что с ним делать. Аналог - текстовый безголовый браузер, работающий с jаva script. Как к примеру phantomJS или жавовые сборки links. Там так точно можно.
А для nodejs есть jsdom, но его просто функционал избыточен и не хочется тащить зависимости для нескольких строк кода..
Ответить с цитированием
  #4 (permalink)  
Старый 21.07.2022, 20:36
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Но если страница обрабатывается скриптом, то она работает с DOM (а не с текстом) И без DOM никуда не деться.
Ответить с цитированием
  #5 (permalink)  
Старый 21.07.2022, 20:41
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,745

Сообщение от voraa
Только само содержимое в любом формате.
Ну страница может быть только в двух форматах - либо html текст, либо DOM. Вы получаете изначальное html представление страницы. Если она еще должна обрабатываться скриптами (в браузере), что бы получить конечный результат, то без DOM ну ни как нельзя. Ведь скрипты в 99,99% случаев только и делают, что курочат изначальный DOM.
Ответить с цитированием
  #6 (permalink)  
Старый 22.07.2022, 11:04
Новичок на форуме
Отправить личное сообщение для beria Посмотреть профиль Найти все сообщения от beria
 
Регистрация: 21.07.2022
Сообщений: 4

Сообщение от voraa Посмотреть сообщение
Ну страница может быть только в двух форматах - либо html текст, либо DOM. Вы получаете изначальное html представление страницы. .
Я очень тупой. Целый день сидел, даже с разными библиотеками под nodejs - результата ноль. Причем часто Nodejs и консоль реального браузера отдавала разные результаты, а alert в nodejs вообще не работает ...
Мне же немного надо… Просто , по возможности компилируемую под разные платформы библиотеку на любом языке, с инкапсулирванным javascript в которой есть функция(процедура), которая берут URL и отдает в любом формате dom или строку.
Дальше уже все пойдет вообще в вордоэксельный VBА, как внешняя библиотека.
Все это делается на богомерзком CEF4, но настолько медленно и печально, что 10 потоков занимают больше гига оперативки, а сама процедура тянет зависимостей на 200 мб, то есть весь cef....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Два вопроса по animate() jQuery Neznayka Общие вопросы Javascript 11 15.05.2013 01:59
Два вопроса по highcharts debugx Библиотеки/Тулкиты/Фреймворки 0 26.10.2011 18:45
Два вопроса по jQuery logon71 jQuery 4 27.07.2011 16:28
Два вопроса по XMLHTTPRequest Pluto Общие вопросы Javascript 7 22.09.2010 22:43
Два очень важных вопроса Гость Internet Explorer 3 26.07.2008 20:45