Страницы: 1
RSS
IE, Получение данных в нормальном виде, парсинг данных из интернета
 
Вытягиваю текст, но он без разделителей - т.е. подряд и цифра не ясна, в краце нужна вот эта табличка:

даже не вся а нижняя часть, где кол-во отправлено и т.д.
я логинюсь и нужные данные уже подставляю, но не могу получить их в нормальном виде.
вот основной текст:
Код
Function WebPageText(ByVal sURL, log, pass, edrpou As String, login As Boolean) As String
     On Error Resume Next
     Set IE = CreateObject("InternetExplorer.Application"):    ' open Internet Explorer
    With IE
    '.Visible = True 'видимость
    .Navigate sURL  ' переход
    While .Busy Or (.readyState <> 4): DoEvents: Wend    ' ожидание
   Set ieDoc = .Document: DoEvents: DoEvents
   If ieDoc.Title Like "Ошибка сертификата*" Or ieDoc.Title Like "Certificate Error*" Then
       ieDoc.Links(1).Click
       While IE.Busy Or (IE.readyState <> 4): DoEvents: Wend
       Set ieDoc = IE.Document
      End If

    With ieDoc 'login
    If login = True Then
      Application.Wait (Now + TimeValue("0:00:01"))
      .getElementsByName("mylogin")(0).Value = log
      .getElementsByName("mypass")(0).Value = pass
      .getElementsByName("savepass")(0).Click
      '.getElementsByName("login")(0).Click
      '.getElementsByValue("submit")(0).Click
      .forms(0).submit
      While IE.Busy Or (IE.readyState <> 4): DoEvents: Wend
    End If
     
      .getElementsByName("group1")(0).Click
      .getElementsByName("edrpou")(0).Value = edrpou
      '.getElementsByName("im1")(0).Click
      .forms(0).submit
      While IE.Busy Or (IE.readyState <> 4): DoEvents: Wend
      WebPageText = .body.innerText    ' тянем
       
    End With
    'Application.Wait (Now + TimeValue("0:00:13"))
     
    .Quit: Set IE = Nothing   ' закрываем
     End With
End Function

П.С. До этого писал все тоже самое на делфи, но проблема с Инди и с запросами, тут куда проще, но информацию получить не получается.
кросс: http://www.programmersforum.ru/showthread.php?p=1319714#post1319714
http://www.excelworld.ru/forum/10-8090-1#75483
Изменено: ivanius - 24.12.2013 14:18:28
Автоматизация приложений, разработка ботов, парсинг сайтов, поиск информации и многое другое на языках : Delphi, C++, VBA. Информация в профиле.
 
Если вы можете получить HTML код таблицы, то можно таким образом.

Код
Public Sub testPasteTable()
    Dim pClip As Object
    Dim sHTML As String
    Set pClip = CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
    'для примера, формируем таблицу
    sHTML = "<Table>"
    sHTML = sHTML & "<tr><td>head</td><td>value</td></tr>"
    sHTML = sHTML & "<tr><td>item1</td><td>100</td></tr>"
    sHTML = sHTML & "<tr><td>item2</td><td>200</td></tr>"
    sHTML = sHTML & "</table>"
    pClip.SetText sHTML
    pClip.PutInClipboard
    ActiveSheet.Range("B2").Select
    ActiveSheet.PasteSpecial Format:="Текст в кодировке Unicode", NoHTMLFormatting:=True
End Sub
 
Я же извинился!!
 
Ну да... А перед этим, зная, что нарушение...

Подойду к Вам и ударю по шее, после этого извинюсь :) Нормально, да?
 
Цитата
vikttur написал: Подойду к Вам и ударю по шее
после этого я вам, Kirill Gureev, личным сообщением вышлю трактат-пояснения "за что"... как вы мне сегодня НЕПОНЯТНО зачем выслали "вот так получилось"...
p.s. Kirill Gureev как бы это не звучало для вас, но если вы понимать не хотите элементарные правила поведения по отношению к др. людям (пользующимся данным ресурсом) - рискуете далее себе самому объяснять "как получилось"  8) ...
желаю вам услышать меня: ваша тема - в вашей теме, а не в моём почтовом ящике лирика "так получилось" от человека, который извиняется после того, как плюёт на всех...  :(
Изменено: JeyCi - 22.11.2016 20:21:45
чтобы не гадать на кофейной гуще, кто вам отвечает и после этого не совершать кучу ошибок - обратитесь к собеседнику на ВЫ - ответ на ваш вопрос получите - а остальное вас не касается (п.п.п. на форумах)
Страницы: 1
Читают тему
Наверх