|
|
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11doska.plus Код: javascript 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 09:38 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Так это ж недельфи код ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 09:44 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11Так это ж недельфи кодТебе ведь нужно кликнуть на странице по ссылке? Скриптом это сделать проще всего (скармливай скрипт CEF4D). Собрать нужную информацию тоже можно скриптом, но на Делфи это тоже без особых проблем можно сделать. В чем сложность? Может я не правильно понял твою задачу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 09:59 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
я не понимаю, что такое скармливай. как, куда? где, в какой момент? Я cef4 только начал изучать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 10:29 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
SallerМожет я не правильно понял твою задачу. Задача простая: спарсить параметры объявления + контакты в свою базу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 10:30 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Это бессмысленная задача причем даже в ближайшей перспективе :) Сейчас телефон в текстовом виде, а когда запалитесь он станет в виде картинки, начнете распознавать картинку и он станет с вотермарками и прочими прелестями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 11:50 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11я не понимаю, что такое скармливай. как, куда? где, в какой момент? Я cef4 только начал изучать Возьми любую демку CEF4Delphi (например MiniBrowser), добавь туда Memo поле для ввода скрипта и кнопку для выполнения скрипта. В Обработчике клика кнопки прописывает Код: pascal 1. Заходим на страницу объявления и выполняем скрипт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 12:40 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 12:47 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Отлично. Спасибо. А как узнать, что страница полностью загружена? Использую OnLoadEnd, но оно срабатывает несколько раз, видать на окончание загрузки каждого фрейма. но строка Код: pascal 1. всегда возвращает false ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 13:01 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11Отлично. Спасибо. А как узнать, что страница полностью загружена? Использую OnLoadEnd, но оно срабатывает несколько раз, видать на окончание загрузки каждого фрейма. но строка Код: pascal 1. всегда возвращает falseКак вариант в событии OnLoadEnd перечитывать список фреймов и проверять все ли фреймы прогрузились. Но это конечно костыльный вариант, лучше спросить у разраба какие есть варианты определения полной загрузки страницы. Хотя может хватить и загрузки главного фрейма, чтобы начать выполнять свои операции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 14:05 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Или же в событии LoadingProgressChange дождаться 100% загрузки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 14:08 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
в onLoadError появляется ошибка Chromium1.LoadEnd, frame url: about:blank Error code:-3 - Error text :'ERR_ABORTED' - URL: https://www.facebook.com/tr/ и на этом, как я понял, дальнейшая загрузка прекращается... а что сделать, чтобы ошибка игнорировалась и загрузка продолжалась? Или где и как правильно вставить Код: pascal 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 14:14 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11, проскакивал тут как-то интересный топик с (мне тогда) неизвестным термином "HeadLess browser": Delphi + HeadLess браузер . Может поможет как-нибудь ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 14:14 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Безголовый браузер и код на ноде или яве - это наилучшее решение по безгеморройности и быстроте написания. Но если это не вариант, то внедрение на страницу своего скрипта будет очень хорошим и гибким вариантом. Скрипт можно класть рядом с программой и менять без пересборки, а из js жонглировать DOM объектами куда проще, чем из интерфейса обертки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2019, 18:52 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Подскажите, а у браузера есть возможность получить InnerHTML? Я почитал: https://www.briskbard.com/forum/viewtopic.php?t=157#p567 дык там нужно такой... огород городить приходится О_о Ну т.е. нет ли чего-нибудь типа Chromium1.Browser.MainFrame.InnerHTML? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2019, 16:16 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
X11, в LoadEnd Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2019, 20:44 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
а ... InnerHTML ... напутал..) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2019, 20:45 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Ещё вопрос по примеру DOMVisitor. В процедуре GlobalCEFApp_OnProcessMessageReceived есть возможность обратиться к фреймам. Хочу сделать цикл по фреймам, но FrameCount возвращает 0 и CefFrameIdentifierArray тоже нулевого размера. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Что я делаю не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2019, 21:07 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
при этом Код: pascal 1. возвращает 3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2019, 21:18 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
дошло, нужно TempHead := aDocument.Body; вместо TempHead := aDocument.Head; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.08.2019, 22:27 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Итак... чтобы кликнуть на ссылку и потом получить текст страницы нужно примерно такие действия. Делал на примере MiniBrowser. В событии TChromium1 OnLoadEnd отправляем сообщение процесу рендеринга: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В событии GlobalCEFApp.OnProcessMessageReceived ловим это сообщение: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. В процедуре DOMVisitor_OnDocAvailableSearch есть доступ к ICefDomDocument, именно он и нужен для итерации по DOM: Код: pascal 1. 2. 3. 4. 5. Цикл по DOMу Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. отправляем в TMemo то, что прилетело из глобального процесса-рендеринга в message Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2019, 17:34 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
VisitDom работает только в процессе, который занимается рендерингом Код: pascal 1. Поэтому DOMVisitor_OnDocAvailableSearch и SimpleDOMIteration бесполезно вызывать из своего приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2019, 18:06 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Я пока так и не понял, что такое TCefFastDomVisitor2 и с чем его едят как и где правильно его использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.08.2019, 18:07 |
|
||
|
CEF4Delphi в потоке с внешней формой
|
|||
|---|---|---|---|
|
#18+
Посоветуйте, как лучше и правильней организовать парсинг в потоке с видимым окном. Как из потока обращаться к окну, где будет работать компоненты TChromium + TCEFWindowParent? Нужно же обмениваться данными и не просто в 10-20 символов. Просто Syncronize не подойдет, должна же быть какая-то взаимосвязь, отдача, очередь, синхронность? Хоть с чего начать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.08.2019, 11:22 |
|
||
|
|

start [/forum/topic.php?fid=58&msg=39852116&tid=2038489]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
161ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
63ms |
get tp. blocked users: |
1ms |
| others: | 223ms |
| total: | 490ms |

| 0 / 0 |
