Carregando...
Sem categoria

Selenium em Python

O Selenium é a biblioteca mais importante na criação de bots que acessam websites e extraem dele informações.

Como instalar o Selenium no Python (Python 3)?

Para usar o Selenium você vai precisar de:

  • Python já instalado (Python 3* ou Python 2.7)
  • Gerenciador de pacotes do Python (PIP 3* ou PIP 2 ou o Anaconda)
  • Driver para comandar o browser via Selenium (Mozilla GeckoDriver ou Google Chrome Driver)

* minha recomendação

No Linux (via apt e pip)

O comando abaixo instalará o python3 + pip3 + Selenium + Mozilla GeckoDriver x64. Confira novas versões do Mozilla GeckoDriver aqui.

sudo apt update &&
# Instalando o python 3
sudo apt install python3 &&
# Instalando o pip 3
apt install python3-pip &&
# Instalando/Atualizando o Selenium através do pip3
pip3 install -U selenium && 
# Instalado o mozilla gecko driver x64 em /usr/local/bin/geckodriver
wget -c https://github.com/mozilla/geckodriver/releases/download/v0.25.0/geckodriver-v0.25.0-linux64.tar.gz -O - | sudo tar -xz -C /usr/local/bin/
# Ou para instalar o x32
# wget -c terminhttps://github.com/mozilla/geckodriver/releases/download/v0.25.0/geckodriver-v0.25.0-linux32.tar.gz -O - | sudo tar -xz -C /usr/local/bin/

Buscando por elementos

Você pode buscar por elementos de várias formas em uma página.

Retornar um elemento ou um array de elementos?

driver.find_element(...)
driver.find_elements(...)

Imagine que em algum lugar do código HTML exista algo assim:

...
<a class="botaoLogin 28323" href="http://cade.com.br"></a>
...

E você queria selecionar exatamente este elemento <a>.

nome_completo_da_classe = 'botaoLogin 28323'

# Usando o find element by class
driver.find_element_by_class(nome_completo_da_classe)
driver.find_element_by(By.CLASS_NAME(nome_completo_da_classe))

# Usando XPATH relativo
xpath_completo = "//*[@class='{}']".format(nome_completo_da_classe)
driver.find_element_by_xpath(xpath_completo )

# Ou você também pode buscar pelo XPATH e o nome parcial da classe
nome_parcial_da_classe = 'botaoLogin'
xpath_parcial = "//*[contains(@class,'{}')]".format(nome_parcial_da_classe)

driver.find_element_by_xpath(xpath_parcial)

Referências

Página de downloads do Selenium
https://www.seleniumhq.org/download/

Buscando por um ou uma lista de elementos?
https://www.guru99.com/find-element-selenium.html

Buscando por elementos via XPATH
https://www.guru99.com/xpath-selenium.html

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *