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
Vídeo recomendado
https://youtu.be/diWPPPhW-9E
https://youtu.be/diWPPPhW-9E
Web Scraping Excel VBA Sites de Varejo
-
- Acabou de chegar
- Mensagens: 1
- Registrado em: Ter Out 29, 2019 11:42 pm
- Mikel Silveira Fraga
- Jedi
- Mensagens: 1173
- Registrado em: Sex Mai 27, 2011 3:27 pm
- Localização: Governador Valadares - MG
- Contato:
Re: Web Scraping Excel VBA Sites de Varejo
Matheus Brandão, bom dia.
Cara, fazer a operação que deseja é totalmente possível, porém é preciso escrever um código diferente para cada site que deseja realizar a extração. Pelo menos 70% do código, relacionado a estrutura do site, terá que ser reescrito. Em resumo, se hoje tem 4 sites que pesquisa, serão 4 códigos. Se daqui a 3 semanas, quiser acrescentar mais 2 sites, terá que desenvolver códigos adicionais.
Isso ocorre devido estruturas diferentes utilizadas por cada desenvolvedor. Apesar de todos os sites possuírem o campo de pesquisa, os resultados e o campo de frete, os elementos utilizam nomenclaturas diferentes em cada campo.
Caso ainda não tenha encontrado alguém para te auxiliar nesse processo, um cara bom pra isso é o membro daqui do fórum, o Paulinho Monteiro (PRMPOKER). Sempre encontra comentários sobre ele na seção Freelancers e Serviços
Dúvidas, estou a disposição.
Cara, fazer a operação que deseja é totalmente possível, porém é preciso escrever um código diferente para cada site que deseja realizar a extração. Pelo menos 70% do código, relacionado a estrutura do site, terá que ser reescrito. Em resumo, se hoje tem 4 sites que pesquisa, serão 4 códigos. Se daqui a 3 semanas, quiser acrescentar mais 2 sites, terá que desenvolver códigos adicionais.
Isso ocorre devido estruturas diferentes utilizadas por cada desenvolvedor. Apesar de todos os sites possuírem o campo de pesquisa, os resultados e o campo de frete, os elementos utilizam nomenclaturas diferentes em cada campo.
Caso ainda não tenha encontrado alguém para te auxiliar nesse processo, um cara bom pra isso é o membro daqui do fórum, o Paulinho Monteiro (PRMPOKER). Sempre encontra comentários sobre ele na seção Freelancers e Serviços
Dúvidas, estou a disposição.