Extraction d'informations d'une racine fantôme à l'aide de Selenium Python
Dans le contexte de l'URL fournie https://www.tiendasjumbo.co/ buscar?q=mani, extraire des informations à partir d'éléments au sein d'une #shadow-root (ouverte) présente un défi. L'extrait de code suivant illustre le problème :
<code class="python">from selenium import webdriver import time from random import randint driver = webdriver.Firefox(executable_path="C:\Program Files (x86)\geckodriver.exe") driver.implicitly_wait(10) time.sleep(4) url = "https://www.tiendasjumbo.co/buscar?q=mani" driver.maximize_window() driver.get(url) driver.find_element_by_xpath('//h1[@class="impulse-title"]')</code>
Solution :
Les produits de la page Web sont encapsulés dans une racine fantôme. Pour accéder à ces éléments, la méthode shadowRoot.querySelector() doit être utilisée. Le code suivant illustre cette stratégie :
<code class="python">driver.get('https://www.tiendasjumbo.co/buscar?q=mani') item = driver.execute_script("return document.querySelector('impulse-search').shadowRoot.querySelector('div.group-name-brand h1.impulse-title span.formatted-text')") print(item.text)</code>
Sortie :
La especial mezcla de nueces, maní, almendras y marañones x 450 g
Références :
Remarque :
Microsoft Edge et Google Chrome version 96 ont introduit des modifications dans la gestion de la racine fantôme. Pour des informations mises à jour, veuillez vous référer aux ressources suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!