Selenium és una eina per a l'automatització de proves i la interacció amb pàgines web. Integrar Selenium a Django perme llegir les dades d'una pàgina web i utilitzar-les a la teva aplicació Django.
Pas 1: Instal·lar Selenium i el controlador del navegador: El primer pas és assegurar-te que tens Selenium instal·lat a la teva màquina. Pots instal·lar-lo fàcilment utilitzant l'eina de gestió de paquets de Python, pip. Executa la següent comanda per instal·lar Selenium:
pip install selenium
També cal descarregar el controlador del navegador que vulguis utilitzar amb Selenium. Per exemple, si vols utilitzar Firefox, hauràs de descarregar el controlador d'aquest navegador per a la plataforma correcta on s'executi.
https://www.browserstack.com/guide/geckodriver-selenium-python
Pas 2: Configurar la integració a Django: Cal afegir Selenium a la llista d'aplicacions instal·lades i configurar les opcions de Selenium al teu fitxer settings.py. Obre el fitxer settings.py i afegeix 'selenium' a la llista d'aplicacions instal·lades de Django:
INSTALLED_APPS = [ ... 'selenium', ... ]
A continuació, configura les opcions de Selenium al fitxer settings.py afegint les següents línies:
SELENIUM_DRIVER = 'selenium.webdriver.Geckodriver' SELENIUM_DRIVER_ARGUMENTS = ['--headless'] # per executar Selenium en mode "headless" (sense interfície gràfica)
Pas 3: Codi per llegir les dades d'una pàgina web: Pots crear una nova vista o utilitzar una existent per aquest propòsit. A continuació, tens un exemple senzill de com llegir la temperatura etiquetada amb la classe 'temperature' d'una pàgina web:
from django.shortcuts import render from selenium import webdriver def temperature_view(request): driver = webdriver.Chrome() # Crea una nova instància del controlador del navegador driver.get('https://www.example.com/temperature') # URL de la pàgina web que mostra la temperatura temperature_element = driver.find_element_by_class_name('temperature') # element que conté la temperatura temperature = temperature_element.text # Obté el text amb la temperatura driver.quit() # Tanca la finestra del navegador return render(request, 'temperature.html', {'temperature': temperature})