Web Scraping na prática

01. Let’s code

Para realizarmos a atividade de Web Scraping na prática nós iremos trabalhar no Google Collaboratory utilziando a biblioteca selenium:

images/selenium.png

https://selenium-python.readthedocs.io/

A biblioteca selenium é uma biblioteca para raspagem de dados realizar diversas operações de automação de scraping na Web.

Nós vamos trabalhar principalmente com os comandos:

01.a.Encontrar elementos na tela:

Com o comando find_elements é possível coletar algum elemento presente na tela, basta apenas selecionar por onde você quer encontrar esse elemento.

Por exemplo, ao clicar F12 em uma tela e encontrar um elemento que deseja copiar o caminho, basta clicar nos três pontinhos no canto esquerdo do HTML.

images/tres_pontinhos.png

Depois ir em Copy e selecionar o caminho desejado.

images/copy.png

Note

Na documentação da biblioteca selenium existe a explicação de qual forma de caminho é melhor para sua aplicação, mas por via geral sempre que utilizar o XPath é mais garantido. XPath é uma linguagem de consulta que nos ajuda a navegar por documentos que usam marcadores, como os arquivos XML e HTML.

Agora que já temos o elemento copiado basta utilizarmos no código:

1login = driver.find_element(By.XPATH, "//*[@id="loginForm"]/div/div[3]")

Dessa maneira já é possível localizar elementos presentes na página da Web

01.b.Dar o comando de clicar

Certo, agora que já aprendemos a localizar os elementos desejados na página da Web é importante aprender a tomar ações a partir dele. Uma das possíveis ações é dar o comando de clicar com o mouse, para isso basta utilizar o comando click() logo depois da localização do elemento desejado.

1login = driver.find_element(By.XPATH, "//*[@id="loginForm"]/div/div[3]").click()

01.c.Copiar texto de algum elemento

images/copy.png

Imagine que você queira extrair ou coletar algum texto presente em algum elemento. Para isso basta utilziar o comando text()

1texto_desejado = driver.find_element(By.XPATH, "//*[@id="loginForm"]/div/div[5]/button/span[2]").text()

01.d.Enviar teclas para o elemento

Imagine que você está automatizando um robô de scraping em uma página que é necessário fazer login.

images/username.png

Para realizar o login é preciso digitar suas credenciais para as caixas de “username” e “password”.

Justamente para digitar essas credenciais nós temos o comando send_keys()

1nome_usuario = colocar_seu_login
2
3username = driver.find_element(By.XPATH, "//*[@id="loginForm"]/div/div[1]/div/label/input")
4
5username.send_keys(nome_usuario)