Wie extrahiere ich mit Selenium Python Daten aus einer Schattenwurzel?

Linda Hamilton
Freigeben: 2024-10-19 06:38:30
Original
960 Leute haben es durchsucht

How to Extract Data from a Shadow Root Using Selenium Python?

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

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

Ausgabe:

La especial mezcla de nueces, maní, almendras y marañones x 450 g
Nach dem Login kopieren

Referenzen:

  • [Das Anmeldeelement konnte in #shadow-root (offen) mit Selenium und Python nicht gefunden werden](https://stackoverflow.com/questions/66779988/unable-to-locate-the-sign-in-element-within- Shadow-Root-Open-Using-Selenium-a)
  • [So finden Sie das Feld „Vorname“ im Shadow-Root (Open) auf der Website https://www.virustotal.com mit Selenium und Python] (https://stackoverflow.com/questions/66820107/how-to-locate-the-first-name-field-within-shadow-root-open-within-the-website)

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:

  • Java: https://gist.github.com/chandrashekar4242/c2ef0878241f737cc89ec1878d60f974
  • Python: https://gist.github.com/hongtaocao/6409059fd2bb8d250f925b6b68c3a660
  • C#:. https://gist.github.com/skcheidt/4a6a8bca561b403db94c7264a5a24 738
  • Ruby: https://gist.github.com/yuusuke-tanaka1/3493c57d228f759be374aeb0b64e51d9

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!

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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!