Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Импорт исторических биржевых данных - Страница 3 - Мир MS Excel

Старая форма входа
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Импорт исторических биржевых данных (Макросы/Sub)
Импорт исторических биржевых данных
alex77755 Дата: Среда, 12.11.2014, 00:53 | Сообщение № 41
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Получение истории за указанный период без регулярок.
В статусбаре отображается процесс
К сообщению приложен файл: 4150280.rar (19.2 Kb)


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеПолучение истории за указанный период без регулярок.
В статусбаре отображается процесс

Автор - alex77755
Дата добавления - 12.11.2014 в 00:53
Vostok Дата: Среда, 12.11.2014, 10:42 | Сообщение № 42
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
В статусбаре отображается процесс

[vba]
Код
Application.StatusBar = "Готовченко!"
[/vba]
Супер строка.
Мощный вариант. Смотрю, новый для меня объект подключился ("Scripting.Dictionary"). Буду изучать.
Эх, братцы, откуда ж вы все это знаете то? И как же это всё в вашей голове умещается ? :) fantastic tales.

Единственно, не понял, в коде вроде как форматирование данных идёт, а вот на страницу почему то всё как строка выгрузилось В каждой ячейке по зелёному треугольничку нарисовалось.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
Сообщение
В статусбаре отображается процесс

[vba]
Код
Application.StatusBar = "Готовченко!"
[/vba]
Супер строка.
Мощный вариант. Смотрю, новый для меня объект подключился ("Scripting.Dictionary"). Буду изучать.
Эх, братцы, откуда ж вы все это знаете то? И как же это всё в вашей голове умещается ? :) fantastic tales.

Единственно, не понял, в коде вроде как форматирование данных идёт, а вот на страницу почему то всё как строка выгрузилось В каждой ячейке по зелёному треугольничку нарисовалось.

Автор - Vostok
Дата добавления - 12.11.2014 в 10:42
alex77755 Дата: Среда, 12.11.2014, 11:43 | Сообщение № 43
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

С форматом просто. Встречаеется в строке три типа данных
[vba]
Код
Private Function FT(X)
If Len(X) - Len(Replace(X, " ", "")) = 2 Then FT = -1: Exit Function ' если дата
If Len(X) - Len(Replace(X, ",", "")) = 2 Then FT = Replace(X, ",", ""): Exit Function 'если 2 запятые
FT = Replace(Replace(X, ",", ""), ".", ",") 'иначе если одна запятая
End Function
[/vba]
Не понятный формат с 2 запятыми и во что его преообразовывать
Последняя строка формат с 1 точкой и одной запятой. Напрямую в ексел не влезет.
Можно во второй и третьей строке сделать преобразование данных
[vba]
Код
If Len(X) - Len(Replace(X, ",", "")) = 2 Then FT = CDbl(Replace(X, ",", "")): Exit Function 'если 2 запятые
FT = CDbl(Replace(Replace(X, ",", ""), ".", ",")) 'иначе если одна запятая
[/vba]
И, кстати, проверку окончания таблицы надо перенести вверх. Иначе если преодразовать в Дабл, то ошибка выелет
[vba]
Код
                           For Each D2 In D1.GetElementsByTagName("td")
                     If InStr(1, D2.innertext, "Close", vbTextCompare) > 0 Then
                     GoTo 1
                     End If
[/vba]
Сорри. Забыл, что данные опять сплитятся (а значит опять станут текстом)
Привести к дабл нужно тут:

[vba]
Код
        For a = 1 To 6
           X(i + 1, a + 1) =cdbl( T(a))
         Next a
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Среда, 12.11.2014, 15:20
 
Ответить
СообщениеС форматом просто. Встречаеется в строке три типа данных
[vba]
Код
Private Function FT(X)
If Len(X) - Len(Replace(X, " ", "")) = 2 Then FT = -1: Exit Function ' если дата
If Len(X) - Len(Replace(X, ",", "")) = 2 Then FT = Replace(X, ",", ""): Exit Function 'если 2 запятые
FT = Replace(Replace(X, ",", ""), ".", ",") 'иначе если одна запятая
End Function
[/vba]
Не понятный формат с 2 запятыми и во что его преообразовывать
Последняя строка формат с 1 точкой и одной запятой. Напрямую в ексел не влезет.
Можно во второй и третьей строке сделать преобразование данных
[vba]
Код
If Len(X) - Len(Replace(X, ",", "")) = 2 Then FT = CDbl(Replace(X, ",", "")): Exit Function 'если 2 запятые
FT = CDbl(Replace(Replace(X, ",", ""), ".", ",")) 'иначе если одна запятая
[/vba]
И, кстати, проверку окончания таблицы надо перенести вверх. Иначе если преодразовать в Дабл, то ошибка выелет
[vba]
Код
                           For Each D2 In D1.GetElementsByTagName("td")
                     If InStr(1, D2.innertext, "Close", vbTextCompare) > 0 Then
                     GoTo 1
                     End If
[/vba]
Сорри. Забыл, что данные опять сплитятся (а значит опять станут текстом)
Привести к дабл нужно тут:

[vba]
Код
        For a = 1 To 6
           X(i + 1, a + 1) =cdbl( T(a))
         Next a
[/vba]

Автор - alex77755
Дата добавления - 12.11.2014 в 11:43
Vostok Дата: Вторник, 18.11.2014, 13:24 | Сообщение № 44
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
можно попробовать и без регулярок:

Использовал код ( Сообщение № 8 ) для выгрузки на лист данных, полученных запросчиком ( Сообщение № 6). Раза три всё работало как часы (правда несколько медленно) и тут возник камень преткновения сразу на первом инструменте в виде:

Кто-нибудь знает как с этим бороться?
К сообщению приложен файл: _Investing.com.xlsm (47.0 Kb)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Вторник, 18.11.2014, 14:39
 
Ответить
Сообщение
можно попробовать и без регулярок:

Использовал код ( Сообщение № 8 ) для выгрузки на лист данных, полученных запросчиком ( Сообщение № 6). Раза три всё работало как часы (правда несколько медленно) и тут возник камень преткновения сразу на первом инструменте в виде:

Кто-нибудь знает как с этим бороться?

Автор - Vostok
Дата добавления - 18.11.2014 в 13:24
alex77755 Дата: Вторник, 18.11.2014, 19:48 | Сообщение № 45
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

попробуй вместо Ишачка
[vba]
Код
Set objIE = CreateObject("InternetExplorer.Application")
     objIE.navigate "res://mshtml.dll/blank.htm"
     objIE.Document.Write T
[/vba]

так:

[vba]
Код
Set objIE = CreateObject("htmlfile")
  objIE.Write T
      

Cells.ClearContents
     For Each HE In objIE.getElementsByTagName("tr")
         R = R + 1
         C = 0
         For Each HB In HE.Cells
         C = C + 1: Cells(R, C) = HB.innertext
         Next
     Next
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщениепопробуй вместо Ишачка
[vba]
Код
Set objIE = CreateObject("InternetExplorer.Application")
     objIE.navigate "res://mshtml.dll/blank.htm"
     objIE.Document.Write T
[/vba]

так:

[vba]
Код
Set objIE = CreateObject("htmlfile")
  objIE.Write T
      

Cells.ClearContents
     For Each HE In objIE.getElementsByTagName("tr")
         R = R + 1
         C = 0
         For Each HB In HE.Cells
         C = C + 1: Cells(R, C) = HB.innertext
         Next
     Next
[/vba]

Автор - alex77755
Дата добавления - 18.11.2014 в 19:48
Vostok Дата: Среда, 19.11.2014, 07:08 | Сообщение № 46
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
попробуй вместо Ишачка

Попробовал. Отработало хорошо!!! Но прикол в том, что прежде чем пробовать новый вариант (вместо Ишачка), я опять, уже сегодня на новый день, попробовал старый вариант. Опять всё отработало на "Ура" раза 4 и встало колом. В чём прикол? Здесь должна быть какая-то причина. Было бы неплохо в этом разобраться.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Среда, 19.11.2014, 13:38
 
Ответить
Сообщение
попробуй вместо Ишачка

Попробовал. Отработало хорошо!!! Но прикол в том, что прежде чем пробовать новый вариант (вместо Ишачка), я опять, уже сегодня на новый день, попробовал старый вариант. Опять всё отработало на "Ура" раза 4 и встало колом. В чём прикол? Здесь должна быть какая-то причина. Было бы неплохо в этом разобраться.

Автор - Vostok
Дата добавления - 19.11.2014 в 07:08
Vostok Дата: Пятница, 21.11.2014, 13:14 | Сообщение № 47
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
alex77755, ты очень уверенно пользуешься методом getElementsByName для извлечения информации из HTML страницы. Глядя на твои примеры, решил "набить руку" по данному методу выборки. Регулярки как-то посложнее будут. Но пока смотрю в твои примеры - всё понятно. Как пробую сам - тёмный лес. К примеру, простая страница http://www.msoffice.nm.ru/faq/macros.htm.. Решил потренироваться. Создал запросчик, получил страницу. Хотел вывести список на лист Excel и забуксовал.

Есть по данному вопросу какие-нибудь книги, статьи, примеры? (Бывает, что в какой-нибудь книжке сидит одна одинокая глава, и ни за что про неё не узнаешь, если кто знающий не подскажет). Можешь посоветовать что-нибудь? Два дня просидел в гугле, глаза в кучу, так ничего и не нашёл.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
Сообщениеalex77755, ты очень уверенно пользуешься методом getElementsByName для извлечения информации из HTML страницы. Глядя на твои примеры, решил "набить руку" по данному методу выборки. Регулярки как-то посложнее будут. Но пока смотрю в твои примеры - всё понятно. Как пробую сам - тёмный лес. К примеру, простая страница http://www.msoffice.nm.ru/faq/macros.htm.. Решил потренироваться. Создал запросчик, получил страницу. Хотел вывести список на лист Excel и забуксовал.

Есть по данному вопросу какие-нибудь книги, статьи, примеры? (Бывает, что в какой-нибудь книжке сидит одна одинокая глава, и ни за что про неё не узнаешь, если кто знающий не подскажет). Можешь посоветовать что-нибудь? Два дня просидел в гугле, глаза в кучу, так ничего и не нашёл.

Автор - Vostok
Дата добавления - 21.11.2014 в 13:14
SkyPro Дата: Пятница, 21.11.2014, 13:25 | Сообщение № 48
Группа: Друзья
Ранг: Старожил
Сообщений: 1206
Репутация: 255 ±
Замечаний: 0% ±

2010
http://msdn.microsoft.com/en-us....0).aspx
Но мое мнение - регулярки удобнее :) И сложного в них нет ничего.
http://regex101.com/


skypro1111@gmail.com

Сообщение отредактировал SkyPro - Пятница, 21.11.2014, 13:26
 
Ответить
Сообщениеhttp://msdn.microsoft.com/en-us....0).aspx
Но мое мнение - регулярки удобнее :) И сложного в них нет ничего.
http://regex101.com/

Автор - SkyPro
Дата добавления - 21.11.2014 в 13:25
Vostok Дата: Пятница, 21.11.2014, 13:38 | Сообщение № 49
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
http://msdn.microsoft.com/en-us....0).aspx

Это всё очень здорово. Спасибо. Но это справочная информация. А мне бы учебную бы, типа Д.Уокенбаха, Б.Джелена или ещё кого. Вообще, начал VBA осваивать и заметил отсутствие учебной наглядной информации. Раньше Web дизайном промышлял, так дефицита в инфе на начальном этапе вообще не испытывал. И статьи, и видеоуроки, и видеокурсы. По VBA можно сказать - вообще ничего нет, а точнее - по использованию в его контексте других технологий типа VBScript и т.д..

Но мое мнение - регулярки удобнее :) И сложного в них нет ничего.

Ну это когда Знаючи и Умеючи. Ресур какой-то крутой :-) Буду смотреть. Спасибо.


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
Сообщение
http://msdn.microsoft.com/en-us....0).aspx

Это всё очень здорово. Спасибо. Но это справочная информация. А мне бы учебную бы, типа Д.Уокенбаха, Б.Джелена или ещё кого. Вообще, начал VBA осваивать и заметил отсутствие учебной наглядной информации. Раньше Web дизайном промышлял, так дефицита в инфе на начальном этапе вообще не испытывал. И статьи, и видеоуроки, и видеокурсы. По VBA можно сказать - вообще ничего нет, а точнее - по использованию в его контексте других технологий типа VBScript и т.д..

Но мое мнение - регулярки удобнее :) И сложного в них нет ничего.

Ну это когда Знаючи и Умеючи. Ресур какой-то крутой :-) Буду смотреть. Спасибо.

Автор - Vostok
Дата добавления - 21.11.2014 в 13:38
doober Дата: Пятница, 21.11.2014, 14:30 | Сообщение № 50
Группа: Друзья
Ранг: Ветеран
Сообщений: 947
Репутация: 323 ±
Замечаний: 0% ±

Excel 2010
Решил потренироваться. Создал запросчик, получил страницу. Хотел вывести список на лист Excel и забуксовал.

А для этого сайта так и будет.
Где вы там увидели кучу элементов с именами
Только эти присутствуют
META name="author"
META name="keywords"
META name="description"


 
Ответить
Сообщение
Решил потренироваться. Создал запросчик, получил страницу. Хотел вывести список на лист Excel и забуксовал.

А для этого сайта так и будет.
Где вы там увидели кучу элементов с именами
Только эти присутствуют
META name="author"
META name="keywords"
META name="description"

Автор - doober
Дата добавления - 21.11.2014 в 14:30
Vostok Дата: Суббота, 22.11.2014, 10:22 | Сообщение № 51
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
А для этого сайта так и будет. Где вы там увидели кучу элементов с именами Только эти присутствуют

Похоже все дороги ведут таки к регулярным выражениям? :) Кстати, Вы регулярки в ручную мастерите, или пользуетесь каким-нибудь волшебным Он-лайн сервисом?


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"
 
Ответить
Сообщение
А для этого сайта так и будет. Где вы там увидели кучу элементов с именами Только эти присутствуют

Похоже все дороги ведут таки к регулярным выражениям? :) Кстати, Вы регулярки в ручную мастерите, или пользуетесь каким-нибудь волшебным Он-лайн сервисом?

Автор - Vostok
Дата добавления - 22.11.2014 в 10:22
alex77755 Дата: Суббота, 22.11.2014, 11:41 | Сообщение № 52
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
Хотел вывести список

Список ссылок?
[vba]
Код
        HTML.write XMLHTTP.responsetext
         For Each TB In HTML.Links
             J = J + 1
             Cells(J, 1) = TB.innertext
'            Debug.Print TB.innertext
         Next
[/vba]
Ну вот так будут все ссылки.
Можно добавить какой-нибудь фильтр и отсеять ненужное


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
Сообщение
Цитата
Хотел вывести список

Список ссылок?
[vba]
Код
        HTML.write XMLHTTP.responsetext
         For Each TB In HTML.Links
             J = J + 1
             Cells(J, 1) = TB.innertext
'            Debug.Print TB.innertext
         Next
[/vba]
Ну вот так будут все ссылки.
Можно добавить какой-нибудь фильтр и отсеять ненужное

Автор - alex77755
Дата добавления - 22.11.2014 в 11:41
alex77755 Дата: Суббота, 22.11.2014, 11:58 | Сообщение № 53
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Например так:
[vba]
Код
       Set aTable = HTML.GetElementsByTagName("ol").Item(0)
            For Each TB In aTable.all
            If Left(TB.innertext, 2) = "XL" Or Left(TB.innertext, 3) = "VBA" Then
             J = J + 1
             Cells(J, 1) = TB.innertext
             End If
        Next
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru
 
Ответить
СообщениеНапример так:
[vba]
Код
       Set aTable = HTML.GetElementsByTagName("ol").Item(0)
            For Each TB In aTable.all
            If Left(TB.innertext, 2) = "XL" Or Left(TB.innertext, 3) = "VBA" Then
             J = J + 1
             Cells(J, 1) = TB.innertext
             End If
        Next
[/vba]

Автор - alex77755
Дата добавления - 22.11.2014 в 11:58
Vostok Дата: Суббота, 22.11.2014, 12:56 | Сообщение № 54
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Взял так. [vba]
Код
Set aTable = objHTML.GetElementsByTagName("ol").Item(0)
For Each TB In aTable.GetElementsByTagName("li")     
                J = J + 1
                Cells(J, 1) = TB.innerText     
Next
[/vba]Чтобы захватить все названия всех тем и заголовков. Но фильтр похоже нужен, но специфический. Хотелось бы удалить по ходу движения тег переноса <BR>, так как он уродует картинку:

И тег <HR> похоже тоже уродует туже картинку. А тег <B> оставить, так как он даёт заголовок раздела:

Кстати, а есть альтернатива .innerText ? Он выдаёт только текст, а сами ссылки как-то сохранить реально?


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 22.11.2014, 12:58
 
Ответить
СообщениеВзял так. [vba]
Код
Set aTable = objHTML.GetElementsByTagName("ol").Item(0)
For Each TB In aTable.GetElementsByTagName("li")     
                J = J + 1
                Cells(J, 1) = TB.innerText     
Next
[/vba]Чтобы захватить все названия всех тем и заголовков. Но фильтр похоже нужен, но специфический. Хотелось бы удалить по ходу движения тег переноса <BR>, так как он уродует картинку:

И тег <HR> похоже тоже уродует туже картинку. А тег <B> оставить, так как он даёт заголовок раздела:

Кстати, а есть альтернатива .innerText ? Он выдаёт только текст, а сами ссылки как-то сохранить реально?

Автор - Vostok
Дата добавления - 22.11.2014 в 12:56
Vostok Дата: Суббота, 22.11.2014, 13:08 | Сообщение № 55
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Чтобы не рыться по страницам, для систематизации в теме, приведём два вида запросчиков, которые мы рассмотрели для импорта WEB страниц для последующего извлечения данных.

Запросчик методом GET. На примере сайта http://finance.yahoo.com



"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 22.11.2014, 13:29
 
Ответить
СообщениеЧтобы не рыться по страницам, для систематизации в теме, приведём два вида запросчиков, которые мы рассмотрели для импорта WEB страниц для последующего извлечения данных.

Запросчик методом GET. На примере сайта http://finance.yahoo.com


Автор - Vostok
Дата добавления - 22.11.2014 в 13:08
Vostok Дата: Суббота, 22.11.2014, 13:18 | Сообщение № 56
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
Запросчик методом POST. На примере сайта http://ru.investing.com (По объёму биржевой информации (ИМХО) самый большой сайт).



"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Суббота, 22.11.2014, 13:31
 
Ответить
СообщениеЗапросчик методом POST. На примере сайта http://ru.investing.com (По объёму биржевой информации (ИМХО) самый большой сайт).


Автор - Vostok
Дата добавления - 22.11.2014 в 13:18
alex77755 Дата: Суббота, 22.11.2014, 14:18 | Сообщение № 57
Группа: Проверенные
Ранг: Обитатель
Сообщений: 362
Репутация: 64 ±
Замечаний: 0% ±

Цитата
а сами ссылки как-то сохранить реально?

Почему бы и нет?
Только в данном случае они не "в чистом виде". Надо дописывать .
Без фильтра все ссылки. Опять же при желании можно добавить фильтр
[vba]
Код
        For Each TB In HTML.Links
              J = J + 1
              If Len(TB.innertext) > 0 Then
                  ActiveSheet.Hyperlinks.Add Anchor:=Cells(J, 1), Address:= _
                  "http://www.msoffice.nm.ru/faq/" & Replace(TB.href, "about:", ""), _
                  TextToDisplay:=TB.innertext
                  Cells(J, 2) = "http://www.msoffice.nm.ru/faq/" & Replace(TB.href, "about:", "")
               End If
          Next
[/vba]


Могу помочь в VB6, VBA
Alex77755@mail.ru


Сообщение отредактировал alex77755 - Суббота, 22.11.2014, 14:26
 
Ответить
Сообщение
Цитата
а сами ссылки как-то сохранить реально?

Почему бы и нет?
Только в данном случае они не "в чистом виде". Надо дописывать .
Без фильтра все ссылки. Опять же при желании можно добавить фильтр
[vba]
Код
        For Each TB In HTML.Links
              J = J + 1
              If Len(TB.innertext) > 0 Then
                  ActiveSheet.Hyperlinks.Add Anchor:=Cells(J, 1), Address:= _
                  "http://www.msoffice.nm.ru/faq/" & Replace(TB.href, "about:", ""), _
                  TextToDisplay:=TB.innertext
                  Cells(J, 2) = "http://www.msoffice.nm.ru/faq/" & Replace(TB.href, "about:", "")
               End If
          Next
[/vba]

Автор - alex77755
Дата добавления - 22.11.2014 в 14:18
Vostok Дата: Понедельник, 24.11.2014, 11:29 | Сообщение № 58
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
alex77755, спасибо за наводящие советы. А вот то, что собственно хотелось получить. (Конечно возможны украшения)

Каждая строка - ссылка на соответствующую страницу в Сети.

Файл Excel прилагается. Собственно, данный код - это пример извлечения данных, полученных Запросчиком, с помощью анализа полученного HTML кода страницы. Для анализа кода страницы, в помощь - Document Object Model. Кстати, очень удобно сохранить код загруженной Запросчиком страницы в формате .html, а потом разглядывать его в Notepad++ в поисках нужных элементов. В этом редакторе html код подсвечивается, очень удобно. Таким образом можно извлекать любую биржевую информацию с любого сайта.

Теперь осталось освоить регулярные выражения :)
К сообщению приложен файл: List_FAQ.xlsm (76.8 Kb)


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Понедельник, 24.11.2014, 11:31
 
Ответить
Сообщениеalex77755, спасибо за наводящие советы. А вот то, что собственно хотелось получить. (Конечно возможны украшения)

Каждая строка - ссылка на соответствующую страницу в Сети.

Файл Excel прилагается. Собственно, данный код - это пример извлечения данных, полученных Запросчиком, с помощью анализа полученного HTML кода страницы. Для анализа кода страницы, в помощь - Document Object Model. Кстати, очень удобно сохранить код загруженной Запросчиком страницы в формате .html, а потом разглядывать его в Notepad++ в поисках нужных элементов. В этом редакторе html код подсвечивается, очень удобно. Таким образом можно извлекать любую биржевую информацию с любого сайта.

Теперь осталось освоить регулярные выражения :)

Автор - Vostok
Дата добавления - 24.11.2014 в 11:29
Vostok Дата: Вторник, 25.11.2014, 10:58 | Сообщение № 59
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 211
Репутация: 1 ±
Замечаний: 40% ±

Excel 2010
В процессе отладки кода столкнулся с "казусом" окна Immediate. После отработки Приведённых в теме запросчиков картинка в окне Immediate (debug.Print DATA) менялась не только от объёма загружаемых данных, но и как мне показалось, весьма странным способом. В частности, при увеличении объёма загружаемых данных в окно подавались какие-то обрезанные "куски" HTML. Сразу было видно, что выводится какой то обрезок. В чём секрет? У этого окна есть какие-то тонкие настройки или это может зависеть от специфики запросчика?


"Посылая кого-то в Google, Помните, завтра туда могут Послать Вас !"

Сообщение отредактировал Vostok - Среда, 26.11.2014, 09:18
 
Ответить
СообщениеВ процессе отладки кода столкнулся с "казусом" окна Immediate. После отработки Приведённых в теме запросчиков картинка в окне Immediate (debug.Print DATA) менялась не только от объёма загружаемых данных, но и как мне показалось, весьма странным способом. В частности, при увеличении объёма загружаемых данных в окно подавались какие-то обрезанные "куски" HTML. Сразу было видно, что выводится какой то обрезок. В чём секрет? У этого окна есть какие-то тонкие настройки или это может зависеть от специфики запросчика?

Автор - Vostok
Дата добавления - 25.11.2014 в 10:58
Varvar2011 Дата: Вторник, 25.11.2014, 17:55 | Сообщение № 60
Группа: Пользователи
Ранг: Новичок
Сообщений: 20
Репутация: 0 ±
Замечаний: 0% ±

Excel 2003
[moder]Позасоряйте. А предварительно Правила форума почитайте
На этот вопрос в этой теме просьба не отвечать. Тему не закрываю только потому, что ее пока, вроде, не полностью закончили.


Сообщение отредактировал Varvar2011 - Вторник, 25.11.2014, 18:10
 
Ответить
Сообщение[moder]Позасоряйте. А предварительно Правила форума почитайте
На этот вопрос в этой теме просьба не отвечать. Тему не закрываю только потому, что ее пока, вроде, не полностью закончили.

Автор - Varvar2011
Дата добавления - 25.11.2014 в 17:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Импорт исторических биржевых данных (Макросы/Sub)
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!