Heim >Backend-Entwicklung >Python-Tutorial >Wie extrahiere ich mit Selenium Python Daten aus einer Schattenwurzel?
Extrahieren von Informationen aus einer Schattenwurzel mit Selenium Python
Im Kontext der bereitgestellten URL https://www.tiendasjumbo.co/ buscar?q=mani, das Extrahieren von Informationen aus Elementen innerhalb einer #shadow-root (offen) stellt eine Herausforderung dar. Der folgende Codeausschnitt veranschaulicht das Problem:
<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>
Lösung:
Die Produkte innerhalb der Webseite sind in einem Schattenstamm gekapselt. Um auf diese Elemente zuzugreifen, muss die MethodeshadowRoot.querySelector() verwendet werden. Der folgende Code demonstriert diese Strategie:
<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>
Ausgabe:
La especial mezcla de nueces, maní, almendras y marañones x 450 g
Referenzen:
Hinweis:
Microsoft Edge und Google Chrome Version 96 führten Änderungen in der Shadow-Root-Behandlung ein. Aktuelle Informationen finden Sie in den folgenden Ressourcen:
Das obige ist der detaillierte Inhalt vonWie extrahiere ich mit Selenium Python Daten aus einer Schattenwurzel?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!