Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Загрузка страницы http в переменную VBA / 18 сообщений из 18, страница 1 из 1
17.02.2016, 00:58
    #39172744
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Добрый день!

Задача: считать данные со страницы в сети интернет.

По всей видимости запрос "проксируется" XmlHttpRequest.
С таким сталкиваюсь впервые поэтому не знаю как работать с такими запросами.
Есть у кого-либо идеи как осуществить чтение содержимого страницы?

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
Sub load_data()
'реальная ссылка на страниц в браузере http://www.mami.ru/rasp/edu/mami.php#group=124433
'то есть сервер использует XhrIframeProxy
t = send_get("http://www.mami.ru/rasp/edu/ajax_mami.php?group=124433")
Debug.Print t
End Sub

Public Function send_get(url) As Variant
Dim oHttp As Object
Set oHttp = CreateObject("WinHttp.WinHttpRequest.5.1")

'    Set oHttp = CreateObject("MSXML2.XMLHTTP") ' под MSXML2 не происходит редирект и возвращается просто текст soryanchik =)
'    If err.Number <> 0 Then
'        Set oHttp = CreateObject("MSXML.XMLHTTPRequest")
'        MsgBox "Error 0 has occured while creating a MSXML.XMLHTTPRequest object"
'    End If
'    On Error GoTo 0
'    If oHttp Is Nothing Then
'        MsgBox "For some reason I wasn't able to make a MSXML2.XMLHTTP object"
'        Exit Function
'    End If

oHttp.Open "GET", url, False
oHttp.setRequestHeader "X-Requested-With", "XMLHttpRequest" ' вот эта штуковина меня смущает
oHttp.setRequestHeader "Accept", "*/*"
oHttp.setRequestHeader "Referer", "http://www.mami.ru/rasp/edu/mami.php"
oHttp.setRequestHeader "Accept-Language", "ru-RU"
'oHttp.setRequestHeader "Accept-Encoding", "gzip, deflate"
oHttp.setRequestHeader "Accept-Encoding", "deflate" ' если делать без сжатия, то данные приходят в UTF-8, соотвественно кириллица возвращается знками ? прим.: <h2>124433 <span class='small'>?¦?µ??N?N? ????
oHttp.setRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko"
oHttp.setRequestHeader "Connection", "Keep-Alive"
oHttp.setRequestHeader "Host", "www.mami.ru"
oHttp.setRequestHeader "Cookie", "group=124433; _ym_uid=1454618017546438182; _ym_isad=0; PHPSESSID=ria6tkja3i4pjuad7fvrh98m76"

oHttp.send
send_get = oHttp.responseText
End Function
...
Рейтинг: 0 / 0
17.02.2016, 08:58
    #39172826
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
trexmerniiЗадача: считать данные со страницы в сети интернет.
Internet Transfer Control
...
Рейтинг: 0 / 0
17.02.2016, 09:56
    #39172861
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Akina,
а ссылку на пример использования данного метода не подкинете? или сам пример.
...
Рейтинг: 0 / 0
17.02.2016, 10:30
    #39172896
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
А прокрути страничку вниз - там примеров... ну скажем так, больше одного...
Если мало, то сделай поиск по MSDN - у авторов там фантазия небогатая, и во всех абсолютно примерах экземпляр этого контрола имеет имя Inet1.
...
Рейтинг: 0 / 0
17.02.2016, 10:54
    #39172918
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Akina,

не могу понять какой reference подключить для возможности работы.
Вы сами работали с этим методом?
...
Рейтинг: 0 / 0
17.02.2016, 11:16
    #39172946
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Это не метод, это контрол и подключать его надо не в референсах, а в компонентах
...
Рейтинг: 0 / 0
17.02.2016, 11:18
    #39172950
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
...
Рейтинг: 0 / 0
17.02.2016, 12:19
    #39173028
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Akina,

не знаю где найти в VBA Excel добавление Components.

В первом посте я привел код из VBA и приложил Excel файл в котором это код отрабатывается.

Средствами VBA Excel можно загрузить страницу для дальнейшей обработки (подразумевается конкретный пример)?
...
Рейтинг: 0 / 0
17.02.2016, 13:05
    #39173086
Barclay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
trexmerniiСредствами VBA Excel можно загрузить страницу для дальнейшей обработки (подразумевается конкретный пример)?

VBA для загрузки не нужен, VBA для обработки нужен. А для загрузки данных со страниц (или даже парсинга большого кол-ва страниц) лучше используйте встроенный PowerQuery, если у вас 2010, 2013 или 2016.
New Query-> From other source -> From Web после чего вводите адрес страницы, она подгружается, выбираете тип: table, document или еще что нужно. А переменную(если например, много страниц) создать на blank query и ссылаетесь в Query Editorе.
...
Рейтинг: 0 / 0
17.02.2016, 13:12
    #39173097
The_Prist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Barclayвстроенный PowerQuery, если у вас 2010Поправка. Встроенный он если 2013 и выше. Для 2010 надо скачивать отдельно и устанавливать.
...
Рейтинг: 0 / 0
17.02.2016, 13:22
    #39173109
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
trexmerniiне знаю где найти в VBA Excel добавление ComponentsTools - Additional Controls.
...
Рейтинг: 0 / 0
17.02.2016, 23:13
    #39173633
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Barclay,

Ваш способ не работает для считывания данных с указанных страниц


...
Рейтинг: 0 / 0
17.02.2016, 23:19
    #39173636
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Akina,

Additional Controls неактивен у меня. Win 7 64-bit, MS Office Pro Plus 2010.
Еще раз хотел бы поинтересоваться, предлагаемый Вами способ действительно может считать информацию с указанного сайта?

Возможно есть еще какие-либо способы выполнить задачу.
...
Рейтинг: 0 / 0
17.02.2016, 23:19
    #39173637
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
trexmerniiAkina,

Additional Controls неактивен у меня. Win 7 64-bit, MS Office Pro Plus 2010.
Еще раз хотел бы поинтересоваться, предлагаемый Вами способ действительно может считать информацию с указанного сайта?

Возможно есть еще какие-либо способы выполнить задачу.
...
Рейтинг: 0 / 0
18.02.2016, 00:44
    #39173659
trexmernii
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
Помогли мне, но на другом форуме.
...
Рейтинг: 0 / 0
18.02.2016, 00:49
    #39173661
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
...
Рейтинг: 0 / 0
18.02.2016, 09:50
    #39173794
Barclay
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
trexmerniiBarclay,

Ваш способ не работает для считывания данных с указанных страниц


trexmernii, все работает.


--

...
Рейтинг: 0 / 0
18.02.2016, 11:48
    #39173935
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Загрузка страницы http в переменную VBA
trexmerniiAdditional Controls неактивен у меня
Правильно. Зачем активировать пункт, если он неприменим к текущему объекту... не, ну думать-то хоть иногда нужно? Контрол может быть где? на форме. Создай юзерформу - будет тебе активный пункт. А чтобы форма не светилась на экране, подрихтуй ей .Visible. И весь код получения веб-страницы уляжется в две строки, половина из которых - определение нужных переменных.
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Загрузка страницы http в переменную VBA / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]