powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Chromium cef3 в отдельном потоке
25 сообщений из 81, страница 1 из 4
Chromium cef3 в отдельном потоке
    #39301896
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
К сожалению, первую тему www.sql.ru/forum/1229066/chromium-cef3 зафлудили. Ладно, оставим её, как флудильню. Любит наш народ )))

В общем, вопрос такой.
Как правильно получить в отдельном потоке внутренний HTML код станиц в цикле?

Т.е. примерно так:
- загружаем первую страницу по первой ссылке;
- ждём пока загрузится;
- получаем внутренний HTML;
- из HTML получаем нужные ссылки;
- в цикле по этим ссылкам нужно получить другие страницы.

Всё в синхронном режиме.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301912
Arioch
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты забыл про скрипты написать.

Если страница статическая - то ты её просто скачиваешь любой файло-качалкой и браузер тут не нужен вообще.

А вот если с сервера приходит какая-то заготовка и только потом страничка сама начинает создавать себя уже на клиенте, то какой-нибудь TJvURLGrabber уже впрямую не применим.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301928
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет.
Там почти голая страница + javascript и куча запросов к серверу
Я уже писал. Я не хочу изучать javascript, анализировать исходный код страниц. Не хочу изобретать велосипед.

Мне нужно лишь получать готовый HTML в синхронном режиме в цикле по ссылкам.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301935
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
X11Нет.
Там почти голая страница + javascript и куча запросов к серверу
Я уже писал. Я не хочу изучать javascript, анализировать исходный код страниц. Не хочу изобретать велосипед.

Мне нужно лишь получать готовый HTML в синхронном режиме в цикле по ссылкам.

подозреваю, что dcef, как и IE, не поддерживает синхронный режим.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301946
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
defecatorподозреваю, что dcef, как и IE, не поддерживает синхронный режим.
возможно, но там есть
CefSingleProcess : boolean
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301949
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11, так а что мешает работать по схеме navigate - oncomplete?
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301951
Фотография defecator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
X11defecatorподозреваю, что dcef, как и IE, не поддерживает синхронный режим.
возможно, но там есть
CefSingleProcess : boolean
Скорее, это похоже на то, что движок не будет создавать доп. процессы, а всё будет в одном.
И это не говорит за синхронность
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301963
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Barmaley57X11, так а что мешает работать по схеме navigate - oncomplete?

пытаюсь её использовать, но пока не знаю, как правильней
нужно же как-то "ждать"

к примеру, есть 50 ссылок, которые нужно скачать каждую по очереди, а не как получится
см. 1ое сообщение:
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301965
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11нужно же как-то "ждать"ну так флагом. Как же еще?
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39301986
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11к примеру, есть 50 ссылок, которые нужно скачать каждую по очереди, а не как получится
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ReadLinks(List);
Navigate(List[0]);

procedure OnComplete()
begin
  ShowMessage('Loaded ' + List[0]);
  List.Delete(0);
  if List.Count > 0 then
    Navigate(List[0]);
end;
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302018
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и к серверу будет сразу 50 обращений - так нельзя
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302043
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11и к серверу будет сразу 50 обращений - так нельзяпочему сразу?
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302056
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
но ссылки же надо в цикле выполнить, по очереди, т.е. не загружать вторую, пока первая не загрузится полностью и из неё нельзя будет извлечь и обработать html

а если запустить цикл
Код: pascal
1.
2.
for i := 0 to count
  Chromium1.Load(StringList1[i]);



то цикл запустит первую ссылку, а не дожидаясь её загрузки, сразу начнёт загружать вторую, и т.д.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302063
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11и к серверу будет сразу 50 обращенийС какого перепугу?
X11но ссылки же надо в цикле выполнить, по очереди, т.е. не загружать вторую, пока первая не загрузится полностью и из неё нельзя будет извлечь и обработать htmlНу и где здесь 19617576 нарушается это условие?
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302065
Barmaley57
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11, так Vasilisk же привел тебе пример кода. Где там "сразу"?
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302071
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уже плохо к вечеру соображаю %)
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302283
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TChromium не хочет работать без окна в потоке :(
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302598
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11TChromium не хочет работать без окна в потоке :(AllocateWnd + MessageQueue
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302615
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мало того, TChromium при Load создаёт ещё три окна зачем-то.
Я пока остановлюсь на TWebBrowser. TWebBrowser в потоке не чудовищно себя ведёт.


http://stackoverflow.com/questions/23181286/how-to-initialize-chromium-embedded-framework-3-in-another-thread
Because DCEF3 has this absolutely stupid multi process architecture.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302716
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_X11к примеру, есть 50 ссылок, которые нужно скачать каждую по очереди, а не как получится
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
ReadLinks(List);
Navigate(List[0]);

procedure OnComplete()
begin
  ShowMessage('Loaded ' + List[0]);
  List.Delete(0);
  if List.Count > 0 then
    Navigate(List[0]);
end;



сделаю несколько процедур OnComplete и буду по очереди подключать, т.к. скачивать приходится разное
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302813
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11,

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

изучаю
http://prog-example.ru/twebbrowser/nevidimyj-brauzer-twebbrowser-v-potoke/

пока затык на строке
Command.ResultCallback := @ResultCallback;

[dcc32 Error] Variable required
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302824
Фотография JayDi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
makhaon,

Причем задача нерешаемая в принципе. Там на странице динамические запросы запускаются так же асинхронно, и поймать их можно, лишь внедрив свой джаваскрипт к тем событиям или отлавливая определенные изменения в DOMе.
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302825
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В Delphi XE3 пример откомпилировался, браузер работает в потоке.
Пробую адаптировать для своей задачи.

Не для пятницы задача
...
Рейтинг: 0 / 0
Chromium cef3 в отдельном потоке
    #39302832
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как вернуть результат из procedure ResultCallback(text: PWideChar);
...
Рейтинг: 0 / 0
25 сообщений из 81, страница 1 из 4
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Chromium cef3 в отдельном потоке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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