Web Scraping Excel VBA Sites de Varejo
Enviado: Sex Nov 01, 2019 10:50 pm
Boa noite a todos,
Estou com uma demanda no trabalho que esta planilha irá ajudar muito, alguem consegue me ajudar?
Preciso de uma planilha Excel onde eu tenha uma tabela onde eu possa preencher o "Site onde eu quero coletar os dados", "o código ou nome do produto que quero pesquisar" e "o CEP onde o produto será entregue" e com isso a tabela iria copiar do site e colar na última célula da planilha o "VALOR EM R$ DO FRETE".
Preciso que eu possa fazer isso com os sites de varejo como Lojas Americanas, Magazine Luiza ou outro qualquer. Preciso que o código possa ser editável de uma forma em que eu possa usar para qualquer site do tipo.
É possível?
Eu cheguei na metade do caminho com um código que consegui montar no VBA, eu consegui fazer o código abrir o Internet Explorer, entrar no site que quero, copiar o dado da célula A2, colar na barra de pesquisa do site e clicar em buscar. Porém não consegui fazer um código que seja possível fazer o restante, que seria clicar no primeiro produto que aparece para abrir a página do produto, colocar o CEP que eu quero, fazer a pesquisa de frete, copiar o valor do frete e colar na planilha do Excel.
Segue abaixo (ainda não terminei o código):
Sub lsPesquisarCEPFaixa()
'Inclui a referência se não houver
lReferenciaIE
Dim ie As InternetExplorer
Dim lNomProd As String
Dim lCodProd As String
Dim lCepProd As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
'Identifica a última célula ativa da lista
lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
'Cria um objeto Internet Explorer
Set ie = New InternetExplorer
'Torna o objeto visível
ie.Visible = True
'Faz um loop por todas as linhas da planilha
For lContador = 2 To lUltimaLinhaAtiva
'Navega ao site dos correios
ie.Navigate "https://www.americanas.com.br/"
'Identifica se a página já foi totalmente carregada
While ie.ReadyState <> READYSTATE_COMPLETE
Wend
'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
sng = Timer
Do While sng + 3 > Timer
Loop
'Carrega os dados da planilha que serão preenchidos na página do site
lCodProd = Range("A" & lContador).Value
lNomProd = Range("B" & lContador).Text
lCepProd = Range("C" & lContador).Value
'Cola os dados na barra de pesquisa do site
ie.Document.all("h_search-input").Value = lCodProd
'Clica no botão "pesquisar" da barra de pesquisa para realizar a consulta
ie.Document.getElementById("h_search-btn").Click
Estou com uma demanda no trabalho que esta planilha irá ajudar muito, alguem consegue me ajudar?
Preciso de uma planilha Excel onde eu tenha uma tabela onde eu possa preencher o "Site onde eu quero coletar os dados", "o código ou nome do produto que quero pesquisar" e "o CEP onde o produto será entregue" e com isso a tabela iria copiar do site e colar na última célula da planilha o "VALOR EM R$ DO FRETE".
Preciso que eu possa fazer isso com os sites de varejo como Lojas Americanas, Magazine Luiza ou outro qualquer. Preciso que o código possa ser editável de uma forma em que eu possa usar para qualquer site do tipo.
É possível?
Eu cheguei na metade do caminho com um código que consegui montar no VBA, eu consegui fazer o código abrir o Internet Explorer, entrar no site que quero, copiar o dado da célula A2, colar na barra de pesquisa do site e clicar em buscar. Porém não consegui fazer um código que seja possível fazer o restante, que seria clicar no primeiro produto que aparece para abrir a página do produto, colocar o CEP que eu quero, fazer a pesquisa de frete, copiar o valor do frete e colar na planilha do Excel.
Segue abaixo (ainda não terminei o código):
Sub lsPesquisarCEPFaixa()
'Inclui a referência se não houver
lReferenciaIE
Dim ie As InternetExplorer
Dim lNomProd As String
Dim lCodProd As String
Dim lCepProd As String
Dim lUltimaLinhaAtiva As Long
Dim lContador As Long
'Identifica a última célula ativa da lista
lUltimaLinhaAtiva = Worksheets("Plan1").Cells(Worksheets("Plan1").Rows.Count, 1).End(xlUp).Row
'Cria um objeto Internet Explorer
Set ie = New InternetExplorer
'Torna o objeto visível
ie.Visible = True
'Faz um loop por todas as linhas da planilha
For lContador = 2 To lUltimaLinhaAtiva
'Navega ao site dos correios
ie.Navigate "https://www.americanas.com.br/"
'Identifica se a página já foi totalmente carregada
While ie.ReadyState <> READYSTATE_COMPLETE
Wend
'aguardar um tempo, coloquei 3 segundos, alterar conforme a necessidade.
sng = Timer
Do While sng + 3 > Timer
Loop
'Carrega os dados da planilha que serão preenchidos na página do site
lCodProd = Range("A" & lContador).Value
lNomProd = Range("B" & lContador).Text
lCepProd = Range("C" & lContador).Value
'Cola os dados na barra de pesquisa do site
ie.Document.all("h_search-input").Value = lCodProd
'Clica no botão "pesquisar" da barra de pesquisa para realizar a consulta
ie.Document.getElementById("h_search-btn").Click