|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
12.08.2024, 20:47 | #1 |
Новичок
Джуниор
Регистрация: 12.08.2024
Сообщений: 4
|
Отключить кеширование обращений к HTML
Здравствуйте! Может быть, сможете помочь.
Столкнулся с проблемой. При парсинге данных из интернета при частых запросах (например, раз в секунду) данные перестают обновляться. Лечится закрыванием и открыванием окна. Получается, что запросы кешируются, и как часто не делай запрос, данные будут приходить не с сайта, а из кеша. Я прочитал, что если добавить к запросу произвольный параметр через "?", то запрос будет восприниматься, как новый. Но без толку, всё равно кеш мешает. Поэтому вопрос: как можно отключить кеш в VBA? Если знаете ответ, то подскажите, пожалуйста, простым языком, я очень далёк от программирования и с трудом пробираюсь через эти дебри. Вот код и во вложении файл (нужно переименовать в xlsm). ___________________________________ _______ Dim s As String Dim ss As String Dim URL As String Function GetHTTPResponse(ByVal sURL As String) As String On Error Resume Next Set oXMLHTTP = CreateObject("WinHttp.WinHttpReques t.5.1") With oXMLHTTP .Open "GET", sURL, False .send GetHTTPResponse = .responseText End With Set oXMLHTTP = Nothing End Function Sub Кнопка1_Щелчок() Let Rqst = Int((100 * Rnd) + 1) Let URL = "https://apicase.ru/btcusdt/txt" & "?ran=" & Right(Str(Rqst), Len(Str(Rqst)) - 1) Let s = GetHTTPResponse(URL) Cells(4, 15) = URL Cells(4, 13) = s End Sub |
14.08.2024, 18:42 | #2 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
чтобы этого избежать, первой строкой в функции GetHTTPResponse нужно сбрасывать кеш для этого URL
вызовом WinAPI функции Код:
Код:
При использовании компонента WinHttpRequest.5.1 кеширования быть не должно (ибо тут используется другой стек протоколов)
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 14.08.2024 в 18:45. |
15.08.2024, 17:49 | #3 |
Новичок
Джуниор
Регистрация: 12.08.2024
Сообщений: 4
|
Большое спасибо, что откликнулись.
Всё добавил как вы сказали, но не получилось. Я обновляю запрос часто, но значение меняется редко, не каждый раз. Вот, например, в этом источнике курс меняется несколько раз в секунду, цифры прямо мельтешат: https://apicase.ru/kurs_bitkoina?ran=71 Но если я скачиваю HTML код в переменную, выделяю в этой переменной участок текста с курсом, то он по идее должен тоже меняться при каждом запросе, а по факту цифры одни и те же. Могут раз в 20-30 секунд обновиться. |
15.08.2024, 19:13 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Курс на странице, которую вы скачиваете, меняется примерно раз в минуту (и его получить не проблема, всё как вы делаете)
А то что вы видите в браузере, выводится совсем другой технологией (тут нужен совсем другой механизм - WebSocket, устанавливать соединение с wss://stream.binance.com:9443/ws/btcfdusd@bookTicker, оттуда непрерывным потоком данные идут с меняющимся курсом) |
15.08.2024, 20:40 | #5 |
Новичок
Джуниор
Регистрация: 12.08.2024
Сообщений: 4
|
Огромное спасибо!
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как отключить редирект для одного HTML-файла в .htaccess? | Bel2535 | PHP | 0 | 19.03.2021 18:09 |
Полностью отключить автоформат HTML-кода Visual Studio 2013 | OmegaBerkut | ASP.NET | 2 | 01.02.2019 11:34 |
количества обращений | Arsenal2 | SQL, базы данных | 7 | 20.01.2015 10:38 |
Перехват обращений к реестру | Fedor666 | Win Api | 2 | 17.10.2011 18:44 |
Отключить диалог со сведениями. Word 2003, HTML | bro | Microsoft Office Word | 5 | 31.03.2011 10:58 |