Wie extrahiere ich Produktinformationen aus Shadow-Root-Elementen mit Selenium Python?

Susan Sarandon
Freigeben: 2024-10-19 06:40:02
Original
429 Leute haben es durchsucht

How to Extract Product Information from Shadow-Root Elements Using Selenium Python?

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:

  1. Greifen Sie auf die Schattenwurzel zu: Erhalten Sie das Impulssuchelement und greifen Sie auf seine Schattenwurzel zu.
  2. Verwenden shadowRoot.querySelector(): Navigieren Sie innerhalb der Schattenwurzel und suchen Sie das gewünschte Element mithilfe des Selektors. In diesem Fall handelt es sich um das Produktetikett.

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>
Nach dem Login kopieren

Dieser Code druckt das Produktetikett für die angegebene URL.

Zusätzliche Hinweise:

  • Für Microsoft Edge und Google Chrome Version 96 sind spezielle Techniken erforderlich, um den Shadow-Root-Zugriff zu handhaben. Weitere Informationen finden Sie in den bereitgestellten Referenzen.
  • Referenzen für detaillierte Diskussionen und Beispiele wurden eingefügt.

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!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage