Como interagir com sites usando VBA e Internet Explorer - O método Execscript

Este post foi originalmente publicado em http://officevbavsto.blogspot.com/2011/06/vba-internet-exemplo-de-utilizacao-do.html

Em um dos meus artigos eu ensinei a usar instruções javascript a partir de seu código VBA. Hoje, quero dar um exemplo prático do poder desta ferramenta.

Imagine que eu quero fazer um download no site Freakshare.com

Veja na imagem, que existe um contador de tempo que geralmente se inicia em 59 segundos.

O código para abrir essa página seria assim:

Sub AcessaPagina()

    Dim ie As InternetExplorer     
	Set ie = New InternetExplorer          
	ie.Navigate "http://freakshare.com/files/cnv4vonx/-Claymore-Vol_14.rar.html"     
	ie.Visible = True

    Do While ie.Busy
	Loop

End Sub

Se olharmos com mais detalhe o código fonte do site Freakshare.com, observaremos o seguinte:

Com execução javascript, você pode alterar esse valor da variável time, mas já adianto que não retardará o download, muito provável porque do lado servidor do site Freakshare existe uma validação.

Como ficaria o código, então?

Sub AcessaPagina()

    Dim ie As InternetExplorer
    Set ie = New InternetExplorer

    ie.Navigate "http://freakshare.com/files/cnv4vonx/-Claymore-Vol_14.rar.html"
    ie.Visible = True

    Do While ie.Busy
    Loop

    Do Until ie.Document.ReadyState = "complete"
    Loop

    ie.Document.parentwindow.execscript ("time = 5")

End Sub

Execute esse código e veja o que acontece!

Se você tentar fazer o download após executar este código e digitar o Captcha no site, receberá a seguinte mensagem do site Freakshare.com.

Créditos

Photo by Life Of Pix from Pexels