====== 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})