powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Delphi + HeadLess браузер
25 сообщений из 51, страница 2 из 3
Delphi + HeadLess браузер
    #39817561
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 скрипта?
Вообщем - читаю эту документацию - и даже зацепиться не за что))
Я бы посоветовал WebDriver стандарт, т.к. у Хрома свой вариант, а вдруг ты решишь перейти на Фокс, например. Все описание есть на сайте W3C
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39818415
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В CEF есть такой вот параметр WindowlessRenderingEnabled - может то, что нужно!
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39818416
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEF3 не поддерживает однопоточный процесс :(
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39818421
Фотография Дегтярев Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BasketbolВ том то и дело, что парсинг непростой. Речь идет о парсинге страниц букмекерских контор.
На них каждую секунду меняются коэффициенты.
P.S. И не нужно предлагать разбираться в сетевых ГЕТ и ПОСТ запросах.
Просто поверьте на слово - это дико сложно.
мне интересно, на сколько чаще меняется разметка по сравнению в протоколах?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854516
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я так до конца и не понял, CEF без окна может нормально работать?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854530
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

может, см. режим windowless:
https://github.com/salvadordf/CEF4Delphi/issues/205
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854537
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Неужели достаточно просто заменить на
CreateBrowser(nil, '')

?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854539
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А вообще правильно выше подсказали -- достаточно обычных запросов, браузер не нужен.

Зашел сейчас на первый попавшийся один-xbet, и вот что он запрашивает по таймеру, прямо в json-приходит -- ХАЛЯВА для разработчика, нафиг никакой хром не нужен:
https://1xbet.co.nz/LiveFeed/BestGamesExtVZip?count=10&antisports=198&mode=4&country=1
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854548
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не достаточно, если сайт использует защиту от ботов и клаудфлэйр :)
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854599
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Выше у одинxbet-а никакой защиты нет. А cloudflare -- это защита от ддоса, стандартные единичные запросы от одного пользователя ей по барабану, даже если в потоке их десятками пускать -- слишком мелко, чтобы заметить и заблочить.

В любом случае, если сайт определяет как бота, то решается использованием общей сессии/куков (например, первый запрос уходит на сайт как обычный пользователь, все остальные идут с полученными куками уже к конкретным страницам/апи).

Я к тому, что парсинг в 99% случаев решается через обычные http-запросы без использования полноценных браузерных движков. Видел всего несколько сайтов, где чувака заморачивались и кодировали/секретили запросы (у одних была асинхронная система с отправкой, получением результата; у других тупо кодировались данные, у третьих сокеты использовались).
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854630
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, для получение контактов нужно собрать разные коды, а что бы их собрать/сгенерировать, нужно выполнить кучу JS. Поэтому проще уже использовать полноценный браузер.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854634
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiЯ к тому, что парсинг в 99% случаев решается через обычные http-запросы

тем не менее, а что делать с 1%

JaDiВидел всего несколько сайтов, где чувака заморачивались и кодировали/секретили запросы (у одних была асинхронная система с отправкой, получением результата; у других тупо кодировались данные, у третьих сокеты использовались).

вот у меня есть таких 2-3 сайта

я уверен, что в будущем таких сайтов будет больше, раньше вообще не заморачивались, а сейчас заморачиваются с защитой контактов
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854655
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiX11,

может, см. режим windowless:
https://github.com/salvadordf/CEF4Delphi/issues/205

там он рисует что-то сам на панели TBufferPanel.

Я о том, что одна и та же страница выполняется по разному с видимым окном и без окна
или вот этот 21954002 JS-код не выполняется или JS не видит нужный текст на html-странице
я так подразумеваю, что JS в данном случае отладить нельзя :( или узнать, выполняется он или нет
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854667
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDiX11,

может, см. режим windowless:
https://github.com/salvadordf/CEF4Delphi/issues/205

Я правильно понимаю, что сообщения из процесса рендеринга отправляются в главный поток приложения
Код: pascal
1.
2.
3.
4.
5.
procedure SimpleDOMIteration(const aDocument: ICefDomDocument; const frame: ICefFrame);
...
..
..
frame.SendProcessMessage(PID_BROWSER, msg);



поэтому если всё будет крутиться в дополнительном потоке, то этот дополнительный поток, в котором будет работать Chromium1ProcessMessageReceived() ничего не получит?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854670
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас тему одну вяло изучаю:

есть такой продукт Selenium ( вики ) для выполнения автоматисированных тестов веб-страниц. Эта штука использует запущенный в фоне headless-браузер PhantomJS
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854676
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
Download PhantomJS - для Windows: весь браузер состоит из одного EXE'шника "phantomjs.exe" без зависимостей, весом 17Мб
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854677
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Даже для авито есть алгоритмы по вытаскиванию номеров телефонов -- главное, заморочиться и поискать/раздебажить.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854711
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JaDi,там пока что с Авито нет особых проблем :)
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854857
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фантом был шикарен, но умер. Теперь на него закладываться нельзя, учитывая, как сейчас меняется стандарт веба. Уже сталкивался с сайтами, которые на нем ломаются.
Остается смотреть в сторону полноценных браузеров в headless режиме
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39854873
ziv-2014
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2Остается смотреть в сторону полноценных браузеров в headless режиме
Например, каких?
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39855021
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014,

Например CEF4Delphi.
Я проверил - работает без панели, где отрисовывается визуальный контент.
Не проверял, как будет работать в отдельном дополнительном потоке.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39855365
Василий 2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ziv-2014Василий 2Остается смотреть в сторону полноценных браузеров в headless режиме
Например, каких?
Опера, Хром, Фокс.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39899025
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol
Для меня странно, что уже существуют обертки для PHP, NODE.JS, PYTHON и др. языки и среды, а для Delphi еще нет...

Что странного? Delphi не нужен.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39899027
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol,

Тебе нужен Selenium WebDriver, если ты так не хочешь парсить api букмекера.
...
Рейтинг: 0 / 0
Delphi + HeadLess браузер
    #39899029
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basketbol
P.S. И не нужно предлагать разбираться в сетевых ГЕТ и ПОСТ запросах.
Просто поверьте на слово - это дико сложно.

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


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