1
resposta

Scraping em paginas dinamicas

Professor, em meu trabalho, preciso puxar as informacoes que cada codigo de peca apresenta. Ja tenho a lista dessas codigos e tenho que jogadas em um INPUT, apertar o ENTER e, captura as informacoes que irão aparecer na pagina. Voce pode me orientar onde posso aprender isso ou me indicar qual curso tenho que fazer para resolver esse problema?

1 resposta

Oi Romulo, como vai?

Peço perdão pela demora em obter um retorno.

A biblioteca BeautifulSoup é apenas um analisador de HTML e como sua necessidade é interagir com uma página, recomendo que utilize a biblioteca Selenium. Na Alura, temos cursos com esse conteúdo na linguagem C#.

Entretanto, deixarei abaixo um exemplo simples de automação semelhante ao que você pretende fazer utilizando a biblioteca selenium e a linguagem python que foi vista ao decorrer deste curso de Web Scraping . No exemplo abaixo, iremos acessar a página inicial da Alura, preencher o input para pesquisar alguma tecnologia e listar os três primeiros resultados. O código estará comentado, mas qualquer dúvida fique a vontade para perguntas.

Pré requisitos para execução do código:

  • Utilizaremos o navegador Google Chrome, caso não o utilize, faça o download do mesmo neste link

  • Baixe o WebDriver responsável por auxiliar na automatização do procedimento, bem como abrir a página automaticamente, clicar em algum elemento, dentre outros. Extraia o arquivo e o coloque na mesma pasta que estiver salvo o código

  • Instale a biblioteca Selenium através do seguinte comando: pip install selenium

Com o ambiente preparado, vamos ao código:

import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome() 
driver.get("https://www.alura.com.br/") # abre a página no navegador
driver.maximize_window() # Maximizo a janela, pois o input aparece com a janela maximizada


input_element = driver.find_element_by_id("header-barraBusca-form-campoBusca") # procuro o input pelo id
input_element.send_keys("django") # digita no campo de input
input_element.send_keys(Keys.RETURN) # tecla o ENTER

# mudo o driver.get para a página atual de pesquisa que foi aberta
pagina_atual = driver.window_handles[0]
driver.switch_to.window(pagina_atual)

driver.implicitly_wait(10) # espera para que o html da página atual seja carregado

resultado_da_pesquisa = driver.find_elements_by_css_selector("h4.busca-resultado-nome") # acesso a classe que mostra os resultados da pesquisa

resultado_da_pesquisa = resultado_da_pesquisa[:3] # Capturo os 3 primeiros resultados da busca

for resultado in resultado_da_pesquisa:
    print(resultado.text) # Exibo o texto da busca

time.sleep(2)
driver.quit()

Veja o funcionamento:

Deixo como referência para consultas a documentação desta biblioteca.

Espero que te ajude e qualquer dúvida estou por aqui.

Abraços e bons estudos!