---
title: "Raspagem da web com o guia de Selenium"
slug: using-selenium-for-web-scraping
date: 2022-05-26T10:04:08+00:00
modified: 2025-09-16T16:43:56+00:00
permalink: https://brightdata.com.br/blog/procedimentos/using-selenium-for-web-scraping
type: blog
---

[ Blog ](https://brightdata.com.br/blog "Blog") / [procedimentos](https://brightdata.com.br/blog/procedimentos)







 [procedimentos](https://brightdata.com.br/blog/procedimentos)

# Raspagem da web com o guia de Selenium

Este é o único guia passo-a-passo de que necessitará para começar a coletar dados da web a partir dos sítios alvo, e guardá-los como ficheiros CSV em menos de 10 minutos

 6 min de leitura





 [ ![](https://media.brightdata.com.br/2023/04/Davis-David-50x50.png) ](https://brightdata.com/blog/authors/davis-david)

 [Davis David

 ](https://brightdata.com/blog/authors/davis-david)





 ![Web scraping with Selenium guide](https://media.brightdata.com.br/2022/05/Web-scraping-with-Selenium-guide2.svg)





Neste artigo iremos discutir:

- Selenium: O que é, e como é utilizado
- Um guia passo-a-passo para raspar com Selenium
- Integração de proxies com Selenium

O correspondente repositório GitHub para este artigo pode ser encontrado [aqui](https://github.com/Asterish/selenium_example).

## **Selenium: O que é, e como é utilizado**

Selenium é um software de código aberto que inclui uma variedade de ferramentas e bibliotecas que permitem atividades de automatização de navegadores, incluindo:

- Ações/recuperação de elementos baseados em páginas web (por exemplo, fechar, voltar, get\_cookie, get\_screenshot\_as\_png, get\_window\_size)
- Teste do sítio
- Gestão de avisos de alerta, e cookies (adição/remoção)
- Apresentação de elementos do formulário
- Coleta de dados / raspagem da web

É compatível com a maioria dos navegadores, incluindo Firefox, Chrome, Safari e Internet Browser. E pode ser utilizado para escrever testes numa variedade de linguagens de programação tais como Python, Node.js, C#, JavaScript e PHP.
Para sua conveniência, incluí um link para a biblioteca de documentação oficial do Selenium 4.1.5.

### **Puppeteer vs. Selenium**

Para aqueles que estão a debater-se, e a considerar [“Puppeteer vs. Selenium”](https://brightdata.com.br/blog/proxies-101/puppeteer-vs-selenium), direi que o “Puppeteer” pode servi-lo melhor se planear concentrar-se principalmente no JavaScript, e no Chrome. Selenium, por outro lado, pode ser a melhor escolha se estiver a procurar trabalhar em vários navegadores diferentes para testar aplicações de navegadores e/ou realizar a coleta de dados da web.

## **Um guia passo-a-passo para raspar com Selenium**

### **Primeiro passo: Instalar Selenium**

Para aqueles que têm pip (ou seja, [instalador de pacotes para Python](https://pip.pypa.io/en/stable/)) nos vossos computadores, tudo o que precisam de fazer é abri-lo e digitar:

```none
pip install -U selenium
```

Caso contrário, pode descarregar [PyPI](https://pypi.org/project/selenium/#files), desarquivá-lo, e executar:

```none
python setup.py install
```

Note que precisará de um driver para que Selenium possa fazer interface com o seu navegador à sua escolha. Aqui tem enlaces para alguns dos mais populares drivers de navegadores para sua conveniência:

- [Safari](https://webkit.org/blog/6900/webdriver-support-in-safari-10/)
- [Firefox](https://github.com/mozilla/geckodriver/releases)
- [Edge](https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/)
- [Chrome](https://chromedriver.chromium.org/downloads)

Vamos usar o Firefox como um navegador de exemplo. Conseguiria isto abrindo o Firefox, indo a uma página web, digamos Yahoo, procurando por “seleniumhq”, e depois fechando o navegador. Aqui está o que isso pareceria em código:

```none
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

browser = webdriver.Firefox()

browser.get('http://www.yahoo.com')
assert 'Yahoo' in browser.title

elem = browser.find_element(By.NAME, 'p')  # Find the search box
elem.send_keys('seleniumhq' + Keys.RETURN)

browser.quit()

```

### **Segundo passo: Importação de pacotes de apoio**

Selenium não é utilizado isoladamente, mas sim em conjunto com outros programas, incluindo o Pandas (uma ferramenta de análise de dados de fonte aberta fácil de usar), por exemplo. Eis o que deve estar a teclar, a fim de o conseguir:

```none
from selenium import webdriver
import time
import pandas as pd
```

### **Terceiro passo: Definição de variáveis**

Nesta etapa definiremos a nossa pasta de destino, consulta de pesquisa, e site de destino. Neste exemplo, teremos como objetivo mapear diferentes oportunidades de emprego, tal como apresentadas por empresas concorrentes no LinkedIn. O que se escreve deve parecer-se com isto:

```none
FILE_PATH_FOLDER = 'F:....Competitive_Analysis'
search_query = 'https://www.linkedin.com/q-chief-financial-officer-jobs.html'
driver = webdriver.Chrome(executable_path='C:/.../chromedriver_win32/chromedriver.exe')
job_details = []

```

### **Quarto passo: Inspeção da etiqueta HTML**

Os sítios HTML têm tipicamente um identificador único para cada etiqueta que está associada à informação que é exibida em qualquer sítio alvo. A técnica aqui é aproveitar esta propriedade do sítio HTML para rastejar o sítio alvo em questão. Pode conseguir isto ao:

- Clicar com o botão direito do rato em qualquer parte da página, e depois clicar em ‘inspecionar’.
- E depois ao clicar na seta que aparece no canto superior esquerdo ou ao premir as teclas Ctrl+Shift+C para inspecionar um elemento específico e obter a etiqueta HTML desejada

Eis o que isso parece:

```none
driver.get(search_query)
time.sleep(5)
job_list = driver.find_elements_by_xpath("//div[@data-tn-component='organicJob']")

```

### **Quinto passo: Extração de pontos de dados específicos**

Extrairemos os nossos pontos de dados alvo utilizando o atributo ‘find\_elements\_by\_xpath’ no driver da web de Selenium, sairemos do driver, e fecharemos o navegador assim que os dados alvo tiverem sido coletados.

Visaremos os pontos de dados da seguinte forma:

- Título do trabalho
- Empresa
- Local do trabalho
- Descrição do trabalho
- Data em que o trabalho foi carregado

Eis o que isso parece:

```none
for each_job in job_list:
    # Getting job info
    job_title = each_job.find_elements_by_xpath(".//h2[@class='title']/a")[0]
    job_company = each_job.find_elements_by_xpath(".//span[@class='company']")[0]
    job_location = each_job.find_elements_by_xpath(".//span[@class='location accessible-contrast-color-location']")[0]
    job_summary = each_job.find_elements_by_xpath(".//div[@class='summary']")[0]
    job_publish_date = each_job.find_elements_by_xpath(".//span[@class='date ']")[0]
    # Saving job info
    job_info = [job_title.text, job_company.text, job_location.text, job_summary.text, job_publish_date.text]
 # Saving into job_details
    job_details.append(job_info)
driver.quit()

```

Note-se que estes seletores podem ser mudados pelo alvo, pelo que as pessoas devem confirmar que os seletores em questão estão corretos, não assumir que o estão.

### **Sexto passo: Guardar os dados em preparação para os resultados**

Nesta altura, desejará adicionar colunas ao quadro de dados e fazer uso do atributo ‘to\_csv’ para guardar todos os dados obtidos em formato CSV, como se segue:

```none
job_details_df = pd.DataFrame(job_details)
job_details_df.columns = ['title', 'company', 'location', 'summary', 'publish_date']
job_details_df.to_csv('job_details.csv', index=False)

```

O seu ficheiro CSV desejado será descarregado para o seguinte local: FILE\_PATH\_FOLDER

É tudo! Acabou de concluir com sucesso o seu primeiro trabalho de raspagem da web com Selenium.

## **Integração de proxies com Selenium**

A integração de proxies com Selenium pode ajudá-lo:

- Realizar a coleta de dados em diversas geolocalizações
- Permitir a coleta de dados à escala sem risco de bloqueio (por exemplo, limitações de taxas sobre IPs que enviam “demasiados” pedidos de dados simultâneos/consecutivos). Neste contexto, poderá também querer analisar os [serviços de desbloqueio da web](https://brightdata.com.br/products/web-unlocker) dedicados.
- Capacitar você a coletar dados do ponto de vista de um IP de usuário real para que você não seja servido informações enganosas por sites alvo potencialmente desconfiados

A [integração de proxies com Selenium](https://brightdata.com.br/integration/selenium) pode ser realizada ao:

1. Ir ao seu Painel de Bright Data e clicar em ‘criar uma Zona’.
2. Escolher ‘Tipo de rede’ e depois clicar em ‘guardar’.
3. Em seguida, dirigir-se para Selenium, e preencher o ‘Proxy IP:Port’ na função ‘setProxy’, por exemplo: zproxy.lum-superproxy.io:22225 de HTTP e HTTPS.
4. Em ‘sendKeys’ introduzir o seu ID de conta de Bright Data e nome de zona name:lum-customer-CUSTOMER-zone-YOURZONE e a sua palavra-passe de Zona encontrada nas definições de Zona.



Contate-nosTeste grátis![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Índice







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=Raspagem+da+web+com+o+guia+de+Selenium&u=https://brightdata.com.br/blog/procedimentos/using-selenium-for-web-scraping) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Raspagem+da+web+com+o+guia+de+Selenium&url=https://brightdata.com.br/blog/procedimentos/using-selenium-for-web-scraping) [ ](http://www.reddit.com/submit?title=Raspagem+da+web+com+o+guia+de+Selenium&url=https://brightdata.com.br/blog/procedimentos/using-selenium-for-web-scraping)







##  Você também pode estar interessado em

 [ ![Guide to the Python Requests Library blog image](https://media.brightdata.com.br/2024/05/Guide-to-the-Python-Requests-Library.svg) ](https://brightdata.com.br/blog/dados-do-site/python-requests-guide "Um guia completo para a biblioteca Requests do Python")

 [Dados do site



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Um guia completo para a biblioteca Requests do Python

Aprenda a usar a biblioteca Requests do Python para web scraping, abrangendo instalação, métodos HTTP e respostas do servidor.



 19-May-2024

 18 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/python-requests-guide)

 [ ![Best HTML Parsing Libraries main blog image](https://media.brightdata.com.br/2024/03/Best-HTML-Parsing-Libraries.svg) ](https://brightdata.com.br/blog/dados-do-site/best-html-parsers "Melhores bibliotecas de Parsing HTML para Scraping de dados")

 [Dados do site



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Melhores bibliotecas de Parsing HTML para Scraping de dados

Descubra os melhores analisadores HTML para Scraping de dados e extração de dados, incluindo httpx, AIOHTTP e urllib.



 24-Mar-2024

 8 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/best-html-parsers)

 [ ![Best headless browsers main blog image](https://media.brightdata.com.br/2024/03/Best-Headless-Browsers.svg) ](https://brightdata.com.br/blog/dados-do-site/best-headless-browsers "Melhores navegadores headless para extração de dados e testes")

 [Dados do site



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Melhores navegadores headless para extração de dados e testes

Explore o universo dos navegadores headless: saiba o que são, como controlá-los por meio de programação e descubra as melhores bibliotecas para testes e automação ininterruptas na web.



 20-Mar-2024

 12 min de leitura

 ](https://brightdata.com.br/blog/dados-do-site/best-headless-browsers)
