====== Parsing de planes web amb Selenium ======
{{tag> python selenium #FpInfor #Daw #DawMp07 #DawMp07Uf04 }}
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})