1
resposta

Webscrap Python com Selenium

Prezados,

Estou tentando fazer uma ferramente que busca, num site, o status dos processos que solicitamos a este "fornecedor". Como são muitos processos, decidi criar um webscrap para fazer esse serviço. Inicialmente tentei com o Beautifulsoup, mas não deu muito certo, então mudei para o Selenium, acontece que estou tendo problemas com o driver do Chrome. envio a palicação que desenvolvi. Talvez vocês possam me ajudar:

rom selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import warnings
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import time
import csv

warnings.simplefilter("ignore", UserWarning)
#user_agent = "Mozilla/5.0 (X11; Fedora; Linux x86_64; rv:48.0) Gecko/20100101 Firefox/48.0"
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36"
dcap = dict(DesiredCapabilities.CHROME)
dcap["chrome.page.settings.userAgent"] = user_agent

# instanciando o webdriver
#driver = webdriver.Chrome(desired_capabilities=dcap, service_args=['--ignore-ssl-errors=true'])
#driver = webdriver.Chrome(executable_path="chromedriver_win32/chromedriver.exe")


url = "https://ma.equatorialenergia.com.br/acompanhamento-de-protocolos/"
params = {"conta_contrato": "1000114729", "protocolo": "8028744626"}

# define as opções do navegador
options = webdriver.ChromeOptions()
#options.add_argument("--headless")  # executa o navegador em modo headless (sem janela)

# inicia o navegador
driver = webdriver.Chrome(options=options, executable_path="chromedriver_win32/chromedriver.exe")
driver.set_window_size(1024, 768)
driver.set_page_load_timeout(120)

# carrega a página e insere os parâmetros
driver.get(url)
for param, value in params.items():
    input_elem = driver.find_element_by_name(param)
    input_elem.clear()
    input_elem.send_keys(value)
input_elem.submit()

# extrai as informações desejadas da página resultante
protocolo = driver.find_element_by_xpath("/html/body/section[2]/div/div/div/section/div/div/div[2]/div[2]/div[1]/div/div[1]/div[2]/strong").text.strip()
data_solicitacao = driver.find_element_by_xpath("/html/body/section[2]/div/div/div/section/div/div/div[2]/div[2]/div[1]/div/div[2]/div[1]/strong").text.strip()
status = driver.find_element_by_xpath("/html/body/section[2]/div/div/div/section/div/div/div[2]/div[2]/div[4]/div/div[2]/div/div/span").text.strip()

print(f"Protocolo: {protocolo}")
print(f"Data da Solicitação: {data_solicitacao}")
print(f"Status: {status}")

# fecha o navegador
driver.quit()

Infelizmente não está funcionando como deveria.

1 resposta

Olá, Samuel, tudo bem?

Gostaria de pedir desculpas pela demora em responder.

Sugiro que verifique a versão do seu navegador Chrome. É fundamental garantir que o driver do Chrome e o próprio navegador estejam em conformidade. Se você estiver utilizando uma versão recente do Chrome, talvez seja necessário atualizar o driver correspondente. Quando o Chrome é atualizado em uma máquina, é essencial que o chrome driver também seja compatível com essa nova versão.

Para saber a versão do Chrome, basta acessar o menu de configurações:

  • No canto superior direito da janela do Chrome, clique nos três pontos verticais, que representam o menu. Isso abrirá um menu suspenso.

tres pontos do navegador

  • Em seguida, no canto esquerdo inferior, clique em "Sobre o Google Chrome"

Sobre o Goole Chrome

  • Acesse site e baixe a versão mais próxima da versão do seu Chrome

Outro ponto importante a verificar é o caminho especificado para o driver. No seu código, você mencionou o caminho como "chromedriver_win32/chromedriver.exe". Certifique-se de que este caminho esteja correto e que o arquivo "chromedriver.exe" realmente exista nessa localização.

No que diz respeito ao seu código de web scraping, parece que você está seguindo na direção certa. Portanto, recomendo que revise e execute os passos mencionados acima para garantir que tudo esteja configurado corretamente.

Espero ter ajudado.

Caso surja alguma dúvida, não hesite em compartilhar no fórum.

Abraços e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!