2016-08-27 2 views
0

Я пытаюсь сделать первенствовать скрести цену полета с сайта https://skrendu.lt/lt/flights/VNOc-OPOc/2016-09-15/1VBA цена соскоба с сайта

Sub Macro() 
Dim IE As New InternetExplorer 
IE.Visible = True 
IE.navigate "https://skrendu.lt/lt/flights/VNOc-OPOc/2016-09-15/1" 

Do 
DoEvents 
Loop Until IE.readyState = READYSTATE_COMPLETE 
Application.Wait (Now() + TimeValue("00:00:010")) 

Dim Doc As HTMLDocument 
Set Doc = IE.document 

Dim sTR As String 
sTR = Doc.getElementsByClassName("ng-binding ng-scope")(0).innerText 
Range(A1) = sTR 

IE.Quit 
End Sub 

Однако я получаю ошибки 400. Любые идеи о том, почему он не работает?

Часть я использую из HTML является:

HTML code

+0

IE.Quit? ??? ? – cutzero

+2

для начала я бы не ушел, т.е. до конца суб. Переместить эту строку до конца – MacroMarc

+0

Я уже пробовал, все еще получаю ту же ошибку –

ответ

0

Этот код, кажется, работает для меня. Я заметил, что вам не хватает " вокруг диапазона A1.

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

Sub FindPrice() 
    Dim IE As New InternetExplorer 

    With IE 
     .Visible = True 
     .navigate "https://skrendu.lt/lt/flights/VNOc-OPOc/2016-09-15/1" 
     Application.Wait (Now() + TimeValue("00:00:06")) ' Wait a bit 

     While .readystate <> READYSTATE_COMPLETE Or .busy 
      Application.Wait (Now() + TimeValue("00:00:01")) 
     Wend 

     Range("A1").Value = IE.document.getElementsByClassName("ng-binding ng-scope")(0).innerText 
    End With 

End Sub 
Смежные вопросы