Ir ao conteúdo
  • Cadastre-se

Excel Integração VBA e iexplorer


Ir à solução Resolvido por R0DR1G0_CWB,

Posts recomendados

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
Link para o comentário
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

 

Link para o comentário
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

Link para o comentário
Compartilhar em outros sites

  • Solução

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

 

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário 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 comunidades 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

×
×
  • Criar novo...