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 3sudo apt install python3 &&# Instalando o pip 3apt install python3-pip &&# Instalando/Atualizando o Selenium através do pip3pip3 install -U selenium && # Instalado o mozilla gecko driver x64 em /usr/local/bin/geckodriverwget -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:

......

E você queria selecionar exatamente este elemento .

nome_completo_da_classe = 'botaoLogin 28323'# Usando o find element by classdriver.find_element_by_class(nome_completo_da_classe)driver.find_element_by(By.CLASS_NAME(nome_completo_da_classe))# Usando XPATH relativoxpath_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 classenome_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

You should also read:

Fazendo os prints do Python aparecerem no systemctl status

fazer todos os prints passarem o parâmetro flush=True [code language="python"] import functools print = functools.partial(print, flush=True) [/code] https://stackoverflow.com/questions/230751/how-to-flush-output-of-print-function https://fhackts.wordpress.com/2014/11/27/systemd-journal-not-showing-python-3-print/