Как узнать вес HTML-странички без загрузки

Общие вопросы: версии и диалекты, синтаксис языка, cтруктуры и типы данных (массивы, строки, списки...), обработка данных и т.д.
Ответить
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

22 окт 2009, 03:00

Возникла необходимость в узнавании размера HTML-страницы без её загрузки. Может кто поможет советом?
Нет религии выше истины
Аватара пользователя
Duncon
Сообщения: 1974
Зарегистрирован: 10 окт 2004, 14:11
Откуда: Питер
Контактная информация:

22 окт 2009, 10:00

Никак не узнать, + странички тянутся, подробней расскажи. Как вариант просчитать 1 раз и записать в базу и от туда брать..
[syntax=Delphi] [/syntax]
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

22 окт 2009, 10:50

Посоветовали, следующее на InDy
[syntax="delphi"]
idhttp.head(<адрес>);
idhttp.response.length;//размер содержимого адреса
[/syntax]
Я работаю с WebBrowser, но кажется придется переписывать
Суть проблемы такова: есть список URL, по срабатыванию таймера необходимо, поочередно брать каждый и проверять изменился ли размер страницы, если да увеличить счетчик. Причем все страницы динамические и являются результатами работы скриптов. Вот столкнулся с такой проблемой, буду благодарен за любую помощь.
Нет религии выше истины
Аватара пользователя
Игорь Акопян
Сообщения: 1419
Зарегистрирован: 13 окт 2004, 17:11
Откуда: СПБ
Контактная информация:

22 окт 2009, 11:20

страница со скриптом могла и не меняться, а вот результат будет другим, так что имхо - никак
Изображение
BBB
Сообщения: 1272
Зарегистрирован: 27 дек 2005, 13:37

23 окт 2009, 15:33

Можно попробовать по HTTP-протоколу прочитать дату последней модификации и размер странички (URL-а).
Но тонкость в том, что не все URL-ы дают ответ на запрос этих параметров.
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

25 окт 2009, 02:50

Нашел такую процедуру на С++ с сокетами. Наверно, придется в тех случаях, когда не получится определить Content-Length или Last-Modified, каждый раз заливать страничку.
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
A если вызвать InternetOpenUrl, а потом сразу InternetQueryDataAvailable?
Нет религии выше истины
dr.Jekill
Сообщения: 509
Зарегистрирован: 03 янв 2009, 23:17
Откуда: Voronezh
Контактная информация:

03 ноя 2009, 22:43

Разобрался сделал через InternetQueryDataAvailable, так же можно через HttpQueryInfoW. В rsdn есть подробное описание с примерами на Delphi.
Нет религии выше истины
atavin-ta
Сообщения: 572
Зарегистрирован: 30 янв 2009, 06:38

09 ноя 2009, 10:59

Самый тупой вариант: загрузить и выбросить. А когда нужна завтрашняя дата, ставить делэй на сутки, потом читать дату. Надеюсь, ты такие варианты не принимаешь?
Вопрос: "Почему вы все сионисты? Нельзя ли писать на чём то другом?".
Ответ: "Писать можно на чём угодно. Но зачем же так себя ограничивать? Пиши на С!".
Ответить