Страницы: 1
RSS
Парсер html страницы
 
Добрый день!

Помогите изменить макрос под следующие задачи:
1. Необходимо достать данные по EURUSD (выделил синим на скрине)
2. Обновлять данные каждую минуту

У меня макрос парсит все данные с этой страницы, а это очень большой и ненужный объем информации. Плюс лишняя загрузка системы. Можно ли его оптимизировать таким образом, что бы он брал только нужную часть инфы с сайта? Данные в эксель можно возвращать в любом виде, там я уже смогу их структурировать.

Спасибо!
 
tehnosmart, приветствую!
По этой ссылке попробуйте
 
Привет!

попробуйте вместо
Код
     For n = 0 To Tr.Length - 1
    For i = 0 To Tr(n).Cells.Length - 1
        Sh.Cells(n + 1, i + 1) = Tr(n).Cells(i).innertext
    Next
   Next
использовать
Код
    n = 17
    For i = 0 To Tr(n).Cells.Length - 1
        Sh.Cells(n + 1, i + 1) = Tr(n).Cells(i).innertext
    Next
Сравнение прайсов, таблиц - без настроек
 
Спасибо вам за оба решения!
И еще один вопрос. Макрос возвращает только текстовые значения, которые в табличке. Из всплывающего окна показывать не хочет.
Парсит все, если ставлю возврат в html.
Можно сделать, что бы также возвращал в тексте из всплывающего окна?
Еще раз спасибо!
Изменено: tehnosmart - 06.02.2019 10:50:05
 
Цитата
[USER=83084]Inexsu написал:Привет!попробуйте вместо
Спасибо за решение.
Можете еще помочь мне с вопросом, о котором писал в посте выше.
Буду вам очень признателен!
Изменено: tehnosmart - 09.02.2019 21:05:28
 
Доброе время суток.
Цитата
tehnosmart написал:
Из всплывающего окна показывать не хочет.
Вот таким кодом (библиотека Microsoft HTML Object Library должна быть подключена явно, в 2010 по другому не хочет) можно добраться до текста, представленного как html, этого всплывающего окна.
Код
    Dim sHtmlTableCode As String, sHtml As String
    Dim pDoc As Object
    Dim pHtml As MSHTML.HTMLDocument
    sHtml = GetHTTPResponse("https://widgets.myfxbook.com/widgets/outlook.html?type=1&symbols=,1")
    Set pDoc = CreateObject("htmlfile")
    pDoc.Open
    pDoc.write sHtml
    Set pHtml = pDoc.body.document
    sHtmlTableCode = pHtml.querySelector("td#symbolNameCellEURUSD input").getAttribute("value")

Значение sHtmlTableCode на момент написания
Скрытый текст


Jungl, большое спасибо. Не подскажите, как добрались? Попытка найти API сайта с первого запроса не удалась.
Изменено: Андрей VG - 09.02.2019 20:36:36
 
Андрей VG, спасибо!
А можно подробнее, пожалуйста.
Библиотеку подключил, а код прикрутить не получается(
 
Цитата
tehnosmart написал:
а код прикрутить не получается
Я его использовал в отдельном методе.
Код
Public Sub test()
    Dim sHtmlTableCode As String, sHtml As String
    Dim pDoc As Object
    Dim pHtml As MSHTML.HTMLDocument
    sHtml = GetHTTPResponse("https://widgets.myfxbook.com/widgets/outlook.html?type=1&symbols=,1")
    Set pDoc = CreateObject("htmlfile")
    pDoc.Open
    pDoc.write sHtml
    Set pHtml = pDoc.body.document
    sHtmlTableCode = pHtml.querySelector("td#symbolNameCellEURUSD input").getAttribute("value")
    MsgBox sHtmlTableCode
End Sub

Меня собственно интересовал только вопрос как добраться в коде страницы то данных этой всплывающей таблицы. Ответ нашёл, поделился с вами. Всё остальное - это уже ваша задача.

P. S. Вы как-то в нарушении правил форума пытаетесь в одной теме решить несколько задач. Может проще в раздел Работа обратиться, раз нед необходимых навыков? Судя по картинке на странице этим кодом занимался Сергей Doober?
Изменено: Андрей VG - 09.02.2019 21:37:38
 
Большое спасибо! Буду пробовать.
Про нарушение - не согласен. Код нашел на форуме. Делал Дубер. Просто мне нужно его немного преобразовать для моих задач.
Еще раз спасибо!
 
Цитата
tehnosmart написал:
Про нарушение - не согласен. Код нашел на форуме. Делал Дубер.
Причём тут Doober? Вам совсем о другом говорят: не нужно в одной теме решать несколько вопросов.  
 
Хорошо. Буду следовать правилам форума. Извините!
Страницы: 1
Наверх