Доброго времени суток. Есть код Sub multitran() Dim ie As New InternetExplorer ie.Navigate "http://www.multitran.ru/c/M.exe?CL=1&s=" & Range("A1").Value 'ie.Visible = True Do DoEvents Loop Until ie.ReadyState = READYSTATE_COMPLETE Dim Doc As HTMLDocument Set Doc = ie.Document Dim sDD As String sDD = Trim(Doc.getElementsByTagName("table")(1).innerText) ie.Quit Range("B1") = sDD End Sub
Который подставляет в адрес значение из ячейки и возврящает необходимые данные. Как подобным образом получить данные из зайта, требующего авторизацию не открывая браузер? например http://my.mail.ru/?from=content#page=/mail/" & Range("A1").Value
{quote}{login=EducatedFool}{date=27.11.2012 05:57}{thema=}{post}Попробуйте такой вариант: http://excelvba.ru/code/ConnectServer{/post}{/quote} Немного ошибся в теме, имел ввиду авторизацию, а не регистрацию, но как оказалось, работает и так, если предварительно залогинится на сайт. по ходу куки срабатывают. по крайней мере работает. все получилось. единственно что теперь бы еще понять как быстро находить необходимый кусок данных в коде. Делаю через inspect ellement на правой кнопке в хроме. но вот какой по порядку это тег - надо считать. а их более сотни. кто нить в курсе как быстро находить порядковый номер тега ?
{quote}{login=}{date=28.11.2012 11:57}{thema=}{post}проще смотреть xml схему в watch window в основном все элементы находятся в document-form-item(0)- и далее по childnodes{/post}{/quote} а можно отсюда поподробнее ?
Dim oIE As Object, sHTML As String Dim tmp, i As Long Set oIE = CreateObject("InternetExplorer.Application") 'запускаем explorer oIE.Visible = 1 'видимость explorer - 0-скрыть 1-показать s = "http://planetaexcel.ru" 'ссылка oIE.Navigate (s) 'загружаем сайт Do While oIE.busy Or (oIE.ReadyState <> 4): DoEvents: Loop 'ждем загрузку
Set maPageHtml = oIE.Document 'выбираем все данные Set NodeList = oIE.Document.getElementsbyTagname("Input")' выбираем все поля ввода
stop 'один раз ставим брекпойнт 'на stop нас выкидывает в редактор - правый щелчок на NodeList - add to watch 'в панели редактора view-watchwindow, в вотч виндов видим все элементы для ввода 'находим нужные поля для логина и пароля + кнопка входа NodeList(0).Value = "egonomist" NodeList(1).Value = "мой вымышленный пароль" NodeList(2).Click '- все, залогинились,
если вдруг на сайте есть радио кнопки, то тогда Set SelectList = oIE.Document.getElementsbyTagname("Select") также просматриваем в вотч виндов Set Htable = maPageHtml.getElementsbyTagname("table") - таблицы на странице
допустим нам нужна 25 таблица Set maTable = Htable(24) ' Worksheets("table").Cells.ClearContents 'очистка листа 'цикл по всем ячейкам таблицы For i = 1 To maTable.Rows.Length ' table rows For j = 1 To maTable.Rows(i - 1).Cells.Length ' each cell of the row Worksheets("table").Cells(i, j) = maTable.Rows(i - 1).Cells(j - 1).innerText Next j Next i
{quote}{login=egonomist}{date=29.11.2012 09:34}{thema=}{post}Dim oIE As Object, sHTML As String
готово{/post}{/quote} Спасибо за ответ, но не совсем понял с этим 'на stop нас выкидывает в редактор - правый щелчок на NodeList - add to watch 'в панели редактора view-watchwindow, в вотч виндов видим все элементы для ввода 'находим нужные поля для логина и пароля + кнопка входа На этом форуме робит, а например на rutraker - не вводит логин, копался в вач виндов - не уверен что понял как найти.
Далее, допустим нам нужна 25 таблица. данные на сайте не в таблицах..
{quote}{login=kvitnitskiy}{date=29.11.2012 11:46}{thema=Re: }{post}{quote}{login=egonomist}{date=29.11.2012 09:34}{thema=}{post}Dim oIE As Object, sHTML As String
готово{/post}{/quote} Спасибо за ответ, но не совсем понял с этим 'на stop нас выкидывает в редактор - правый щелчок на NodeList - add to watch 'в панели редактора view-watchwindow, в вотч виндов видим все элементы для ввода 'находим нужные поля для логина и пароля + кнопка входа На этом форуме робит, а например на rutraker - не вводит логин, копался в вач виндов - не уверен что понял как найти.
Далее, допустим нам нужна 25 таблица. данные на сайте не в таблицах..{/post}{/quote}
в вотч виндов раскрываем иерархию nodelist - видим там item по параметру name у item находим логин и пароль и кнопку вход для rutraker item(6) = username item(7) = password item(9) = вход
теперь в программе убираем stop и к итему обращаемся как Nodelist(номер итема -1)
практически все html сайты построены на таблицах - просто посмотрите в watch window переменную htable и ее innerhtml если же в переменную ничего не попадает - то надо использовать Msxml.DOMDocument там уже без эксплорера, гулять по ветвям документа.
но для некоторых сайтов и это не работает - тогда нужно тянуть исходный текст страницы и уже построчно его обрабатывать.
рисунок не могу посмотреть - на работе запрещены файлообменики, лучше всего смотреть структуру сайта в firefox - правая кнопка мыши - исследовать элемент.
{quote}{login=egonomist}{date=29.11.2012 12:30}{thema=}{post}в вотч виндов раскрываем иерархию nodelist - видим там item по параметру name у item находим логин и пароль и кнопку вход для rutraker item(6) = username item(7) = password item(9) = вход
теперь в программе убираем stop и к итему обращаемся как Nodelist(номер итема -1)
практически все html сайты построены на таблицах - просто посмотрите в watch window переменную htable и ее innerhtml если же в переменную ничего не попадает - то надо использовать Msxml.DOMDocument там уже без эксплорера, гулять по ветвям документа.
но для некоторых сайтов и это не работает - тогда нужно тянуть исходный текст страницы и уже построчно его обрабатывать.{/post}{/quote} Спасибо, с полями для ввода данных и нажатия кнопок - разобрался а то что для некоторых сайтов не работает - это точно.. например для http://ru.wikipedia.org хоть таблицы и есть, но ничего не достает из них, прошелся по сем по очереди :(
практически все html сайты построены на таблицах - просто посмотрите в watch window переменную htable и ее innerhtml если же в переменную ничего не попадает - то надо использовать Msxml.DOMDocument там уже без эксплорера, гулять по ветвям документа.
но для некоторых сайтов и это не работает - тогда нужно тянуть исходный текст страницы и уже построчно его обрабатывать.{/post}{/quote} Спасибо, с полями для ввода данных и нажатия кнопок - разобрался а то что для некоторых сайтов не работает - это точно.. например для http://ru.wikipedia.org хоть таблицы и есть, но ничего не достает из них, прошелся по сем по очереди :({/post}{/quote} Да и с mail.ru не получается залогинится, не могу найти выбор домена, отличного от mail.ru (bk.ru, например)