Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Определить окончание загрузки веб-страницы / 25 сообщений из 31, страница 1 из 2
05.08.2012, 00:25
    #37904626
Genco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Здравствуйте!

Возникла у меня проблема, которую костыльно решить несложно, а нормально — я пока не нагуглил. Программа у меня пока делает следующее:
открывает страничку в браузере по умолчанию или ином(не IE именно важно, это осложняет дело). После чего делает аккуратненький скриншот.

Код не привожу, он тривиальный, да и загвоздка не в нем, а в том, что скрин окна браузера делать логично в тот момент, когда страничка загрузится полностью. А навороченность её заранее, конечно, не известна. Потому решение поставить Sleep() в конец кода на самом деле очень ненадежное.

Из Javascript/PHP узнать, когда окончится загрузка легко, но доступа к этим возможностям из win32 приложения нет; компонент Delphi TWebBrowser (есть аналоги в других языках и библиотеках) умеет сообщать, когда загрузка завершается _внутри_него_, что сильно не тоже самое (компонент работает через IE).
Раскопки показали, что есть технология DDE устаревшая, которая небогато, даже хреново документирована для браузеров, но Chrome вот её не поддерживает совсем.
Точно ли поможет RegisterURLEcho (описание от MS) пока не успел проверить, т.к. хром тоже нужен.

На данный момент играюсь с задержкой и веб-компонентом, но хотелось бы добиться стабильного и надежного решения. Обидно же, ведь сам браузер момент загрузки ловит, неужели никак его "спросить" нельзя))
Буду благодарен, если кто подаст хоть какие-то идеи.
...
Рейтинг: 0 / 0
05.08.2012, 01:06
    #37904643
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Genco,

А взять размер из HTTP-заголовка ?
...
Рейтинг: 0 / 0
05.08.2012, 01:21
    #37904645
Genco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Эмм? размер?
Просто моя win32 программа - внешняя по отношению к браузеру. Условно говоря, будет делать скриншот загруженной страницы в окне браузера. Вопрос в том, можно ли как-то строго определить, что страница в этом браузере загрузилась , без задержки по времени.

Мне посоветовали сделать проксирующий сервер маленький, который будет как-либо модифицировать страницы, либо на худой конец замерять время загрузки грубо, но это немножко геморойно, неужели ничего попроще нельзя придумать?
...
Рейтинг: 0 / 0
05.08.2012, 01:53
    #37904655
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Genco,

если доступ к коду браузера есть (т.е. он самописный ) то http://www.interface.ru/home.asp?artId=8317
...
Рейтинг: 0 / 0
05.08.2012, 02:07
    #37904657
Genco
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Ы, пасиб. Браузеры то обычные - opera, IE, chrom и т.д. Потому с исходниками как-то не очень, да и фоткать для сравнения хочу все.
...
Рейтинг: 0 / 0
05.08.2012, 02:54
    #37904666
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
GencoЫ, пасиб. Браузеры то обычные - opera, IE, chrom и т.д. Потому с исходниками как-то не очень, да и фоткать для сравнения хочу все.



Тогда проксирующий сервер - ход мыслей верный, но и первый мой ответ тогда верен :)
...
Рейтинг: 0 / 0
06.08.2012, 09:17
    #37905169
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Миссия невыполнима, ибо загрузка страницы не прекращается с передачей html данных
В общем случае загрузка может не завершитья никогда(скрипты могут непрерывно освежать контент)
...
Рейтинг: 0 / 0
06.08.2012, 10:09
    #37905228
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
ИзопропилМиссия невыполнима, ибо загрузка страницы не прекращается с передачей html данных
В общем случае загрузка может не завершитья никогда(скрипты могут непрерывно освежать контент)

Вы имеете ввиду все ити милые особености WEB 2.0 ? А если на большие размеры просто заточиться, должна же программа хоть немного думать?
...
Рейтинг: 0 / 0
06.08.2012, 10:32
    #37905257
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
BlackGnomeГуестдолжна же программа хоть немного думать?
Чем?

Цикл обновления контента может бесконечным.(например - онлайн лента новостей, курсов , погоды и тп)
...
Рейтинг: 0 / 0
06.08.2012, 10:33
    #37905260
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Ну вклячит OnLoad скрипт новый iframe - и что делать? что есть завершение загрузки?
...
Рейтинг: 0 / 0
06.08.2012, 11:15
    #37905326
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
ИзопропилBlackGnomeГуестдолжна же программа хоть немного думать?
Чем?

Цикл обновления контента может бесконечным.(например - онлайн лента новостей, курсов , погоды и тп)

Есть такая весЧ - заголовок, кажется заголовки никто не отменял... Но тогда получится уже не "утилитка" :)
...
Рейтинг: 0 / 0
06.08.2012, 11:34
    #37905369
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
BlackGnomeГуестЕсть такая весЧ - заголовок, кажется заголовки никто не отменял...
какое отношение имеет заголовок к выполнению скриптов на странице и загрузке iframe и изображений?
...
Рейтинг: 0 / 0
06.08.2012, 12:30
    #37905470
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
ИзопропилBlackGnomeГуестЕсть такая весЧ - заголовок, кажется заголовки никто не отменял...
какое отношение имеет заголовок к выполнению скриптов на странице и загрузке iframe и изображений?

Может мы о разном, если делать проксирование, то через службу пройдёт и тип данных и предполагаемый размер
так?
...
Рейтинг: 0 / 0
06.08.2012, 12:57
    #37905511
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
BlackGnomeГуестИзопропилпропущено...

какое отношение имеет заголовок к выполнению скриптов на странице и загрузке iframe и изображений?

Может мы о разном, если делать проксирование, то через службу пройдёт и тип данных и предполагаемый размер
так?Веб-страница - это не только html, а еще и стили, скрипты, картинки, и т.д, которые загружаются отдельными запросами. А есть еще и ajax-запросы, которые выполняются позже. И есть такие сайты, где до выполнения ajax-запросов страница, с точки зрения пользователя, смотрящего в экран браузера, еще не полностью загружена. А есть такие сайты, где ajax-запросы выполняются неперывно, с целью обновления чата/новостей/биржевых котировок и т.п. И вот задача - как авроматически определить, когда страница полностью загружена, с точки зрения юзера, глядящего в экран.
...
Рейтинг: 0 / 0
06.08.2012, 13:33
    #37905583
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
?А есть такие сайты, где ajax-запросы выполняются неперывно, с целью обновления чата/новостей/биржевых котировок и т.п. И вот задача - как авроматически определить, когда страница полностью загружена, с точки зрения юзера, глядящего в экран.А как вообще такая страница может быть "полностью загружена"? Это всё равно что открыть в плеере видеофайл и попытаться определить, "полностью ли он загружен" :)
Вот, кстати, задачка вам - открываете на тытрубе любое видео, начинаете смотреть... в какой момент страница будет "полностью загружена"? Когда хотя бы с этим определитесь, можно будет думать дальше :)
...
Рейтинг: 0 / 0
06.08.2012, 13:40
    #37905594
BlackGnomeГуест
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
?BlackGnomeГуестпропущено...


Может мы о разном, если делать проксирование, то через службу пройдёт и тип данных и предполагаемый размер
так?Веб-страница - это не только html, а еще и стили, скрипты, картинки, и т.д, которые загружаются отдельными запросами. А есть еще и ajax-запросы, которые выполняются позже. И есть такие сайты, где до выполнения ajax-запросов страница, с точки зрения пользователя, смотрящего в экран браузера, еще не полностью загружена. А есть такие сайты, где ajax-запросы выполняются неперывно, с целью обновления чата/новостей/биржевых котировок и т.п. И вот задача - как авроматически определить, когда страница полностью загружена, с точки зрения юзера, глядящего в экран.

А у нас по-любому будет размер и теория нечеткуих множеств :)
...
Рейтинг: 0 / 0
06.08.2012, 13:45
    #37905605
?
?
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Ну не я автор вопроса, но с точки зрения "сделать аккуратненький скриншот"... Страничка с видео полностью загружена, когда начальные титры прошли :).

А еще на каких-то сайтах вешают рекламу на весь экран, и предлагается посмотреть ее ...дцать секунд или нажать кнопочку, в которую хрен попадешь. Деать скриншот видимо надо, когда рекламный баннер закроется.
...
Рейтинг: 0 / 0
06.08.2012, 13:55
    #37905635
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
?,

,т.е. в текущей постановке задачи самая простая система, которая может определить, полностью или нет загружена страница - человек :)
...
Рейтинг: 0 / 0
06.08.2012, 13:56
    #37905638
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
?А еще на каких-то сайтах вешают рекламу на весь экранА на ютубе реклама вообще "встроена" в ролик, что ещё сложнее автоматически отследить.\
...
Рейтинг: 0 / 0
06.08.2012, 14:32
    #37905718
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
tanglirА как вообще такая страница может быть "полностью загружена"? Это всё равно что открыть в плеере видеофайл и попытаться определить, "полностью ли он загружен" :)
Потоковое видео - так чётче будет
...
Рейтинг: 0 / 0
06.08.2012, 14:36
    #37905736
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
GencoЫ, пасиб. Браузеры то обычные - opera, IE, chrom и т.д. Потому с исходниками как-то не очень, да и фоткать для сравнения хочу все.
Попытка найти доказательство того что картинка в браузере ЗАГРУЖЕНА уведёт тебя к тезисам Курта Гёделя и т.д.
Поэтому ограничся таймером. Условно считаем что сайт загружен через 30 сек и там есть все слои и картинки.
И делаем скриншот. Дополнительно можно считать трафик и проверять что ключевые html-ки прогружены до упора.

Всё вобщем-то. Успехов.
...
Рейтинг: 0 / 0
06.08.2012, 17:20
    #37906085
kengoo
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Написать к каждому браузеру плагин, который изнутри оценивает степень "готовности" документа и передаёт некое событие вовне, где его видит внешняя софтина.
...
Рейтинг: 0 / 0
06.08.2012, 17:31
    #37906108
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Пол-царства за такой плагин. А особенно за способность объяснить его логику без эвристики и метафизики.
...
Рейтинг: 0 / 0
06.08.2012, 23:09
    #37906482
Multy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Genco, зачем открывать страничку в браузере? TWebBrowser в Delphi, WebBrowser в Студии это по сути встроенный в программу IE.
WebBrowser.Document обеспечивает программный доступ ко всем элементам страницы.

DocumentCompleted конечно не очень надёжен. Свойства ReadyState и Url.AbsoluteUri могут несколько помочь.

Именно через него и удобнее всего разбирать странички, вплоть до выполнения скриптов и всего остального.
...
Рейтинг: 0 / 0
07.08.2012, 00:00
    #37906519
Изопропил
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Определить окончание загрузки веб-страницы
Multy,

замечательно, только это никак не отвечает на вопрос - что есть "завершение загрузки страницы"
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Определить окончание загрузки веб-страницы / 25 сообщений из 31, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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