Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengekstrak Data dari Akar Bayangan Menggunakan Selenium Python?

Bagaimana untuk Mengekstrak Data dari Akar Bayangan Menggunakan Selenium Python?

Linda Hamilton
Linda Hamiltonasal
2024-10-19 06:38:30962semak imbas

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

Mengekstrak Maklumat daripada Akar Bayangan Menggunakan Selenium Python

Dalam konteks URL yang disediakan https://www.tiendasjumbo.co/ buscar?q=mani, mengekstrak maklumat daripada elemen dalam #akar bayang (terbuka) memberikan cabaran. Coretan kod berikut menggambarkan isu:

<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>

Penyelesaian:

Produk dalam halaman web dirangkumkan dalam akar bayangan. Untuk mengakses elemen ini, kaedah shadowRoot.querySelector() mesti digunakan. Kod berikut menunjukkan strategi ini:

<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>

Output:

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

Rujukan:

  • [Tidak dapat mengesan elemen Log Masuk dalam #shadow-root (open) menggunakan Selenium dan Python](https://stackoverflow.com/questions/66779988/unable-to-locate-the-sign-in-element-within- shadow-root-open-using-selenium-a)
  • [Cara mencari medan Nama pertama dalam shadow-root (terbuka) dalam laman web https://www.virustotal.com menggunakan Selenium dan Python] (https://stackoverflow.com/questions/66820107/how-to-locate-the-first-name-field-within-shadow-root-open-within-the-website)

Nota:

Microsoft Edge dan Google Chrome versi 96 memperkenalkan perubahan dalam pengendalian akar bayang. Untuk maklumat terkini, sila rujuk sumber berikut:

  • Java: https://gist.github.com/chandrashekar4242/c2ef0878241f737cc89ec1878d60f974
  • https://gist.github.com/hongtaocao/6409059fd2bb8d250f925b6b68c3a660
  • C#: https://gist.github.com/skcheidt4c4ab4b/skcheidt/skcheidt 4738
  • Ruby: https://gist.github.com/yuusuke-tanaka1/3493c57d228f759be374aeb0b64e51d9

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Data dari Akar Bayangan Menggunakan Selenium Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Jumlah Jenis dalam PythonArtikel seterusnya:Jumlah Jenis dalam Python