Extrahieren von Informationen aus Shadow-Root-Elementen mit Selenium Python
In diesem Beitrag befassen wir uns mit dem Problem der Extraktion von Produktinformationen von der Website https ://www.tiendasjumbo.co/buscar?q=mani. Diese Elemente werden in einem #shadow-root (offenen) Element platziert, wodurch herkömmliche Extraktionsmethoden unwirksam werden.
Die Schattenwurzel verstehen
Schattenwurzel ist eine Technik Wird verwendet, um DOM-Elemente zu kapseln und sie vor dem Haupt-HTML-Dokument zu verbergen. Um auf Elemente innerhalb einer Schattenwurzel zuzugreifen, müssen bestimmte Schattenwurzel-Locators verwendet werden.
Lösung: Verwendung von ShadowRoot.querySelector()
Um das Produktetikett zu extrahieren, Wir implementieren die folgende Strategie:
Codebeispiel:
<code class="python">from selenium import webdriver from random import randint driver = webdriver.Firefox(executable_path="C:\Program Files (x86)\geckodriver.exe") time.sleep(4) url = "https://www.tiendasjumbo.co/buscar?q=mani" driver.maximize_window() driver.get(url) 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>
Dieser Code druckt das Produktetikett für die angegebene URL.
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonWie extrahiere ich Produktinformationen aus Shadow-Root-Elementen mit Selenium Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!