Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 11.08.2015, 17:11
Аватар для savage911
savage911 savage911 вне форума
Прохожий
 
Регистрация: 11.08.2015
Адрес: Санкт-Петербург
Сообщения: 11
Версия Delphi: XE2 - XE5
Репутация: 10
По умолчанию Как получить HTML-код постоянно обновляющейся страницы?

Уважаемые форумчане!
Есть такая задачка - есть сайт, на котором раз в несколько секунд обновляются числа внутри табличек или появляются новые таблички/исчезают старые.
Нужно с интервалом, скажем, в 5 секунд получать html-слепок информации и парсить его. С парсингом я как-нибудь и сам управлюсь, пусть через ж... извините, давно не учился программированию, но всё же это решаемо. А вот каким путём лучше идти именно для получения HTML-кода? Я ничего лучше TwebBrowser на форме, и получения его Body не придумал, но как минимум на моем железе (а это старенький Атом с Win XP) интернет эксплорер отказался обновляться выше 8-й версии, а в ней сайт просто не открывается. Вернее открывается, но обновление занимает где-то минут 5, а числа меняются раз в 5-20 секунд. При этом обычный браузер Хром всё показывает в реальном времени. То есть железо не особо "тупит".
Пробовал почитать про то, как пользоваться Хромиум эмбеддед (TChromium), но мозг взорвался, а информации очень мало, и я не совсем понимаю, как адаптировать для своего случая.

Может кто подсказать кусочек кода, который сначала один раз откроет нужный адрес www.site1.ru (это не реальный адрес, так, для примера), а потом будет 1 раз в 5 секунд извлекать его содержимое в переменную S типа string (подозреваю, что это будет внутри тела Timer1.OnTimer)?
Ответить с цитированием
  #2  
Старый 11.08.2015, 17:52
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

что-нибудь из TIdHTTP, WinHTTP, WinINet вполне достаточно будет.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #3  
Старый 11.08.2015, 18:04
Аватар для savage911
savage911 savage911 вне форума
Прохожий
 
Регистрация: 11.08.2015
Адрес: Санкт-Петербург
Сообщения: 11
Версия Delphi: XE2 - XE5
Репутация: 10
По умолчанию

Num Lock,
если я правильно уловил, что с помощью Инди мне надо постоянно слать запрос (GET)? Именно так работает браузер со страницами (сайтами), которые сами постоянно инициируют обновление странички?
Просто хотелось использовать именно компонент браузера, чтобы не лезть глубже в дебри структуры отправки запросов, инди и т.д.
Ответить с цитированием
  #4  
Старый 11.08.2015, 18:09
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

да, периодически делать GET запрос веб-серверу. обычно веб-браузер используют для просмотра веб-страниц (сайтов), использовать его только для получения html-странички (без ее визуализации) излишне.
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
  #5  
Старый 11.08.2015, 18:20
Аватар для savage911
savage911 savage911 вне форума
Прохожий
 
Регистрация: 11.08.2015
Адрес: Санкт-Петербург
Сообщения: 11
Версия Delphi: XE2 - XE5
Репутация: 10
По умолчанию

Дружище, прошу прощения, но я правда настолько слаб конкретно в веб-технологиях (последние 15 лет после универа занимаюсь совсем иными задачами из области прикладной электроники). Отниму ещё пару минут твоего времени.
Собственно, сайт: https://www.betmarathon.com/su/live/popular

На нём постоянно что-то обновляется. Подскажи, пожалуйста, как получать обновлённый текст с интервалом в 5 секунд?
Я не понимаю.
Когда я ещё хоть как-то плотно занимался Pascal, он назывался Turbo Pascal 6.0 и Borland Pascal 7.0 b и работал под DOS. Тогда интернет-технологии были в зачатках. Распарсить и обработать данные я соображу как, ибо тот же паскаль, только в профиль, но вот как это получить со странички? Подозреваю, что всего кода будет строчек 10, но я не знаю, каких...
Ответить с цитированием
  #6  
Старый 11.08.2015, 18:48
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

Код:
var
  WinHttp: TWinHttp;
  ResponseContent: TFileStream;
begin
  WinHttp:=TWinHttp.Create(Self);
  ResponseContent:=TFileStream.Create('Project1.html', fmCreate);
  try
    WinHttp.Get('https://www.betmarathon.com/su/live/popular', ResponseContent);
    ShowMessage('Ok');
  finally
    ResponseContent.Free;
    WinHttp.Free;
  end;
end;

TWinHttp обертка над WinHTTP, собственный компонент, реализует эту схему:



для https вполне подходит, без всяких дополнительных dll.

https://yadi.sk/d/dvkP34zriPk8m
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
Этот пользователь сказал Спасибо NumLock за это полезное сообщение:
savage911 (16.08.2015)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:13.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter