powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi + HeadLess браузер
25 сообщений из 51, страница 1 из 3
Delphi + HeadLess браузер
    #39814951
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем.
Можете подсказать в каком направлении копать, чтобы подружить Delphi и какой либо из HeadLess браузеров?
Очень желательно чтобы это был Chrome Headless.

CEF не предлагать, ибо по факту он не поддерживает headless mode.
Вернее, он "как бы" поддерживает, но в итоге Chromium HeadLess жрет столько же ресурсов что и обычный Chromium (CEF)
Поэтому смысла в таком headLess браузере нет.

С другой стороны - HeadLess Chrome в headless mode жрет гораздо меньше ресурсов, чем в обычном режиме.
И так как из языков программирования я знаю только Делфи (да, я лох))), хотелось бы как то подружить это все.

Задача - парсинг страниц с помощью JS.
Эта задача отлично выполняется сейчас с помощью Chromium. Но каждая страница в таком режиме жрет и память и процессор как обычный браузер. Хочется значительно уменьшить это пожирание ресурсов.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39814959
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
что такое HeadLess ?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39814961
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol,
Используй chromium, сделай один процесс браузера и уменьши ресурсы.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39814963
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если парсинг простой и страницы простые (без JS, подгрузок и пр.),
то я бы вообще использовал какую-нибудь простую библиотеку -
Synapse, Indy и пр. Чуть больше кода, но зато гораздо эффективнее.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815019
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"HeadLess" - безголовый. Т.е браузер, который работает в фоном режиме, не виден пользователю, и поэтому не жрет ресурсы на отображение страниц, картинок, рендеринг и т.д.
Но при этом выполняет JS скрипт на страницах.
..

ziv-2014Basketbol,
Используй chromium, сделай один процесс браузера и уменьши ресурсы.

Это все равно дофига ресурсов на отображение страницы. У headless браузера это занимает меньше памяти.

ziv-2014Если парсинг простой и страницы простые (без JS, подгрузок и пр.),
то я бы вообще использовал какую-нибудь простую библиотеку -
Synapse, Indy и пр. Чуть больше кода, но зато гораздо эффективнее.

В том то и дело, что парсинг непростой. Речь идет о парсинге страниц букмекерских контор.
На них каждую секунду меняются коэффициенты.
P.S. И не нужно предлагать разбираться в сетевых ГЕТ и ПОСТ запросах.
Просто поверьте на слово - это дико сложно.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815090
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol,
У тебя существуют 3 варианта:
1. Chromium - уменьшить все что можно.
2. Htmlviewer ( https://github.com/BerndGabriel/HtmlViewer) + легковесный js (например, этот https://github.com/grijjy/DelphiDuktape) - но есть ограничения и придется попотеть, чтобы все это поженить. Но легковесней представить сложно.
3. Обрабатывать GET и POST запросы.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815204
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ziv-2014Basketbol,
У тебя существуют 3 варианта:
1. Chromium - уменьшить все что можно.
2. Htmlviewer ( https://github.com/BerndGabriel/HtmlViewer) + легковесный js (например, этот https://github.com/grijjy/DelphiDuktape) - но есть ограничения и придется попотеть, чтобы все это поженить. Но легковесней представить сложно.
3. Обрабатывать GET и POST запросы.

ziv-2014 , спасибо за ответ.
Вселенная послала мне человека, который все это уже решил и решил с помощью Chromium.
Сейчас мне предстоит перенять этот чудесный опыт.
Видимо, до сих пор я не понимал всей мощи Chromium.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815207
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol> Вселенная послала мне человека, который все
Basketbol> это уже решил и решил с помощью Chromium.
Basketbol> Сейчас мне предстоит перенять этот чудесный опыт.

Ты ссылку-то приведи на его опыт, настройки и пр.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815243
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В любом случае все headless браузеры управляются банальными GET/POST запросами на порт интерфейса. Протокол стандартизован W3C (хотя у хрома есть и собственная реализация). Протокол очень прост, а если взять пример на другом языке, так и вообще делается за день.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815277
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol"HeadLess" - безголовый. Т.е браузер, который работает в фоном режиме, не виден пользователю, и поэтому не жрет ресурсы на отображение страниц, картинок, рендеринг и т.д.
Но при этом выполняет JS скрипт на страницах.
..это очень серьёзный пунктик, эта фигня обычно очень сильно под ряд популярных браузеров заточена и довольно ресурсоёмкая
т.е. некуда не деться, придётся использовать что-то популярное
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815353
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема браузеров в том, что они не умеют нормально работать без окон, в потоке
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815366
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо определиться с терминологией. Либо браузер "живет" внутри вызывающего приложения как библиотека, либо это полноценный сетап браузера, просто запуенный в невизуальном режиме. В первом случае возможны всякие нюансы типа трудностей вызова из фонового потока, во втором же браузеру пофигу, откуда им управляют. Могу порекомендовать PhantomJS, состоящий из одного экзешника. Правда, не обновляется с 2013, и некоторые сайты уже могут не работать.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815378
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Проблема браузеров в том, что они не умеют нормально работать без окон, в потоке
Что мешает в потоке запустить оконный цикл?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815388
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Окно должно быть "видимым". Не так всё просто.
Не знаю, как оно с хромиумом, у с Edge/IE мороки хватает.
К сожалению с Edge/IE нормально не хотят работать некоторые сайты.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39815819
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11Окно должно быть "видимым". Не так всё просто.Иногда помогают танцы с бубном типа видимого окна с координатами -3/-3 и размерами 1/1 (или даже 0/0, если хватит)
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817233
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BasketbolВселенная послала мне человека, который все это уже решил и решил с помощью Chromium.
Сейчас мне предстоит перенять этот чудесный опыт.
Видимо, до сих пор я не понимал всей мощи Chromium.

Видимо - мимо. Как это часто бывает - наобещал камаз всего и вся - взял предоплату и пропал)

Теперь копаю в сторону Delphi + Chrome Headless который управляется по порту.

Для меня странно, что уже существуют обертки для PHP, NODE.JS, PYTHON и др. языки и среды, а для Delphi еще нет...
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817280
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol,
Возьми https://github.com/salvadordf/CEF4Delphi
Там есть пример как вызывать js код.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817293
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BasketbolДля меня странно, что уже существуют обертки для PHP, NODE.JS, PYTHON и др. языки и среды, а для Delphi еще нет...
Это как раз не странно, это правда жизни. Мало того что пик популярности языка давно миновал, так еще и долгое отсутствие стандартных HTTP компонентов сделало свое черное дело. Правда, сейчас с появлением THTTPClient ситуация может потихоньку налаживаться
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817300
энди
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кстати, вроде у каких-то из этих компонентов на базе хрома была возможность рендера в памяти без вывода окна на экран
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817496
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ziv-2014Basketbol,
Возьми https://github.com/salvadordf/CEF4Delphi
Там есть пример как вызывать js код.

Так это я уже 55 лет использую))
Проблема то не в том, чтобы JS скрипт выполнить, а в том, как это сделать минимально возможными ресурсами.
Когда TChromium запускаешь с ключом --headless - смотрю по диспетчеру задач - все то же самое.
Хотя отрисовки действительно нет.
И где то на просторах интернета ( https://bitbucket.org/chromiumembedded/cef/issues/2349/headless-mode-without-x)
в одном комментарии написано:
CEF does not support Chrome headless mode.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817508
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Копаю в сторону работы Headless Chrome (не CEF).
Вот здесь описан "протокол" взаимодействия с Хромом:
https://chromedevtools.github.io/devtools-protocol/tot/

Общаюсь с одном человеком - он использует Chrome Headless из Perl
(Написал свой класс)
Говорит - можно из любой среды работать с ним с помощью неблокирующих сокетов.
Но я ващщще не понимаю с чего там начать)
Т.е. так то в принципе все понятно:
запускаем headless chrome
Код: php
1.
 chrome --headless --remote-debugging-port=9222 https://[ТУТ_МОЯ_СТРАНИЦА]


Дальше общаемся с помощью сокетов по указанному порту.
Но какие команды посылать?
Как открывать новые вкладки?
Как ожидать событие полной загрузки документа?
Как идентифицировать и общаться с конкретными вкладками?
Как запустить в нем JS скрипт?
Как получить вывод JS скрипта?
Вообщем - читаю эту документацию - и даже зацепиться не за что))
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817511
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BasketbolПроблема то не в том, чтобы JS скрипт выполнить, а в том, как это сделать минимально возможными ресурсами.
Когда TChromium запускаешь с ключом --headless - смотрю по диспетчеру задач - все то же самое.
Хотя отрисовки действительно нет.
И где то на просторах интернета ( https://bitbucket.org/chromiumembedded/cef/issues/2349/headless-mode-without-x)
в одном комментарии написано:
CEF does not support Chrome headless mode.

Ты используешь Chrome - он по своей природе не умеет минимальными ресурсами, тем более твою задачу.
Ты в принципе можешь сделать 1 процесс и уменьшить объем памяти. Но жрать то он всеравно будет прилично.
Тогда используй его последовательно. Загрузил одну задачу, обработал, берешь следующую и т. д.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817521
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817531
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ziv-2014Ты используешь Chrome - он по своей природе не умеет минимальными ресурсами, тем более твою задачу.
Ты в принципе можешь сделать 1 процесс и уменьшить объем памяти. Но жрать то он всеравно будет прилично.
Тогда используй его последовательно. Загрузил одну задачу, обработал, берешь следующую и т. д.

Тут все дело в конкретных цифрах: отрисовка всего и вся занимает часть ресурсов.
Насколько меньше безголовый хром будет жрать ресурсов по сравнению с обычным?
Скажем если безголовый хром потребляет ресурсов раза в 4 меньше чем обычный - меня бы это устроило.
По крайней мере когда я из командной строки открываю одну и ту же страницу в обычном хроме и в безголовом - то разница чуть ли не в 10 раз, + меньше процессов.

И насчет последовательности: мне это нужно для ОДНОВРЕМЕННОГО парсинга большого количества страниц, контент на каждой из которых меняется очень быстро.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39817534
Basketbol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ziv-2014Вот тут для си# есть
https://github.com/ChromeDevTools/awesome-chrome-devtools

За это спасибо.
Пойду почитаю.
Может что то и прояснится.
...
Рейтинг: 0 / 0
25 сообщений из 51, страница 1 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi + HeadLess браузер
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]