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?

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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!