|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
Как получить HTML-код постоянно обновляющейся страницы?
Уважаемые форумчане!
Есть такая задачка - есть сайт, на котором раз в несколько секунд обновляются числа внутри табличек или появляются новые таблички/исчезают старые. Нужно с интервалом, скажем, в 5 секунд получать html-слепок информации и парсить его. С парсингом я как-нибудь и сам управлюсь, пусть через ж... извините, давно не учился программированию, но всё же это решаемо. А вот каким путём лучше идти именно для получения HTML-кода? Я ничего лучше TwebBrowser на форме, и получения его Body не придумал, но как минимум на моем железе (а это старенький Атом с Win XP) интернет эксплорер отказался обновляться выше 8-й версии, а в ней сайт просто не открывается. Вернее открывается, но обновление занимает где-то минут 5, а числа меняются раз в 5-20 секунд. При этом обычный браузер Хром всё показывает в реальном времени. То есть железо не особо "тупит". Пробовал почитать про то, как пользоваться Хромиум эмбеддед (TChromium), но мозг взорвался, а информации очень мало, и я не совсем понимаю, как адаптировать для своего случая. Может кто подсказать кусочек кода, который сначала один раз откроет нужный адрес www.site1.ru (это не реальный адрес, так, для примера), а потом будет 1 раз в 5 секунд извлекать его содержимое в переменную S типа string (подозреваю, что это будет внутри тела Timer1.OnTimer)? |
#2
|
||||
|
||||
что-нибудь из TIdHTTP, WinHTTP, WinINet вполне достаточно будет.
Пишу программы за еду. __________________ |
#3
|
||||
|
||||
Num Lock,
если я правильно уловил, что с помощью Инди мне надо постоянно слать запрос (GET)? Именно так работает браузер со страницами (сайтами), которые сами постоянно инициируют обновление странички? Просто хотелось использовать именно компонент браузера, чтобы не лезть глубже в дебри структуры отправки запросов, инди и т.д. |
#4
|
||||
|
||||
да, периодически делать GET запрос веб-серверу. обычно веб-браузер используют для просмотра веб-страниц (сайтов), использовать его только для получения html-странички (без ее визуализации) излишне.
Пишу программы за еду. __________________ |
#5
|
||||
|
||||
Дружище, прошу прощения, но я правда настолько слаб конкретно в веб-технологиях (последние 15 лет после универа занимаюсь совсем иными задачами из области прикладной электроники). Отниму ещё пару минут твоего времени.
Собственно, сайт: https://www.betmarathon.com/su/live/popular На нём постоянно что-то обновляется. Подскажи, пожалуйста, как получать обновлённый текст с интервалом в 5 секунд? Я не понимаю. Когда я ещё хоть как-то плотно занимался Pascal, он назывался Turbo Pascal 6.0 и Borland Pascal 7.0 b и работал под DOS. Тогда интернет-технологии были в зачатках. Распарсить и обработать данные я соображу как, ибо тот же паскаль, только в профиль, но вот как это получить со странички? Подозреваю, что всего кода будет строчек 10, но я не знаю, каких... |
#6
|
||||
|
||||
Код:
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)
|