Ir para conteúdo
Fórum Script Brasil
  • 0

Não copia de todas as páginas


alessandro marcelo

Pergunta

criei um código para extrair informações de um site, acessa, faz login e senha e chega na página correta, ao extrair os dados percorre por todas as páginas mas não extrai os dados da última, total 5 páginas extrai dados as 4 primeiras corretamente.

se alguém puder me ajudar, agradeço

segue código:

Sub ImportarDadosParaPlanilha()

    Dim urlLogin As String
    urlLogin = "https://yyyy.com.br/auth/login"

    Dim usuario As String
    Dim senha As String
    usuario = "XXXX"
    senha = "XXXX2023"

    Dim urlDados As String
    urlDados = "https://yyyy.com.br/pedidos-vendas"

    Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True 

    IE.navigate urlLogin

   
    Do While IE.Busy Or IE.readyState <> 4
        Application.Wait Now + TimeValue("0:00:01")
    Loop

    IE.document.getElementById("loginform-username").Value = usuario
    IE.document.getElementById("loginform-password").Value = senha

   
    IE.document.forms(0).submit

  
    Do While IE.Busy Or IE.readyState <> 4
        Application.Wait Now + TimeValue("0:00:01")
    Loop
    
  
    Dim botao As Object
    
    
    Set botao = IE.document.getElementsByClassName("icon-call-end")(0)

  
    If Not botao Is Nothing Then
        botao.Click
    Else
        MsgBox "Botão não encontrado!"
        IE.Quit
        Exit Sub
    End If

    Do While IE.Busy Or IE.readyState <> 4
        Application.Wait Now + TimeValue("0:00:01")
    Loop

    
    Dim numeroDePaginas As Integer
    numeroDePaginas = 5


    For pagina = 1 To numeroDePaginas

     
        For Each coluna In Array(1, 3, 4, 5, 😎
          
            Dim seletor As String
            seletor = "td.w1[data-col-seq='" & coluna & "']"

           
            Dim elementos As Object
            Set elementos = IE.document.querySelectorAll(seletor)

          
            If elementos.Length > 0 Then
              
                For i = 0 To elementos.Length - 1
                  
                    Sheets("Import").Cells((pagina - 1) * elementos.Length + i + 1, coluna).Value = elementos.Item(i).innerText
                Next i
            End If
        Next coluna

        
        Dim urlProximaPagina As String
        urlProximaPagina = "https://yyyy.com.br/pedidos-vendas/index?page=" & pagina + 1

        IE.navigate urlProximaPagina

        
        Do While IE.Busy Or IE.readyState <> 4
            Application.Wait Now + TimeValue("0:00:01")
        Loop
    Next pagina

    
    IE.Quit
    
    End Sub

 

 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,5k
×
×
  • Criar Novo...