Ir ao conteúdo
  • Cadastre-se
R0DR1G0_CWB

Excel RESOLVIDO Integração VBA e iexplorer

Recommended Posts

Olá, estou criando um crawler em vba para manter atualizado certas informações que busco manualmente.

 

Minha dúvida até que é simples. Estou fazendo o seguintes FOR:

For Each i In IE.Document.body.getElementsByTagName("span")

o i recebe o seguinte valor "[obejct HTMLSpanElement]"

 

Até aqui beleza, mas como na página existe vários "spans" encontrei a dificuldade de identificar qual eu preciso.

Página: https://www.ferramentaskennedy.com.br/busca?q=Tcs72Xp16At

 

Com o apoio do Chrome vejo o seguinte:

No código:

<span class="valor h6"> R$ 1.598,00 </span>

 

Demais infos:

span.valor.h6

innerText: "R$ 1.598,00"

 

tentei fazer o FOR assim:

For Each i In IE.Document.body.getElementsByTagName("span.valor.h6")

Mas não localiza a informação e pula essa etapa.

 

Tentei também:

For Each i In IE.Document.body.getElementsByTagName("span").getAttributesByClassName("valor h6")

Que gera o erro:

Erro em tempo de execução '438'
O objeto não aceita esta propriedade ou método

 

Obs.: Não sou programador, apenas estou tentando agilizar o meu dia-a-dia.

 

Já visitei alguns sites e não encontro a resposta, agradeço quem puder me ajudar.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia,

 

Ainda não encontrei a solução para meu problema.

Apenas incluindo nova situação, acredito estar no caminho certo:

 

For Each i In ie.Document.body.getElementsByTagName("span")
    For Each j In ie.Document.body.getElementsByClassName("valor h6") 'até aqui esta rodando
          vlr = ie.Document.body.getElementsByClassName("valor h6").innerText 'aqui gera o erro 438 q citei acima
    Next j

Next i

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde,

 

Meu dilema persiste, rsss.

Ajustei o código para:

For Each i In ie.Document.body.getElementsByClassName("valor h6")
     vlr = i.getElementsByClassList("valor h6").classList.Item(2).innerText
     Range("C" & cont).Value = vlr
Next i

Mesmo com essa alteração, permanece gerando o erro 438.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Questão resolvida.

 

Para quem passar pela mesma situação eu estava errando na sintaxe da biblioteca utilizada do Microsoft Internet Controls.

 

A forma correta é:

        For Each i In ie.Document.body.getElementsByTagName("span")
          If i.className = "valor h6" Then
            vlr = i.innerText
            Range("C" & cont).Value = vlr
          End If
        Next i

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×