Bagaimana untuk Mengekstrak Maklumat Tersembunyi daripada #shadow-roots Menggunakan Selenium Python?

Patricia Arquette
Lepaskan: 2024-10-19 06:44:01
asal
374 orang telah melayarinya

How to Extract Hidden Information from #shadow-roots Using Selenium Python?

Mengekstrak Maklumat daripada #shadow-root menggunakan Selenium Python

Dalam bidang pengikisan web, mengekstrak data daripada elemen yang tersembunyi dalam #shadow -akar boleh menimbulkan cabaran yang ketara. Artikel ini meneroka teknik untuk mengatasi halangan ini menggunakan Selenium Python.

Masalah:

Pertimbangkan URL https://www.tiendasjumbo.co/buscar?q= mani dari kedai dalam talian. Untuk mengekstrak label produk dan medan lain daripada tapak ini, pengguna mencuba pendekatan berikut:

<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>
Salin selepas log masuk

Walau bagaimanapun, pendekatan ini gagal dan menukar iframe terbukti sama-sama tidak berjaya.

Penyelesaian :

Kunci untuk mengekstrak data dari tapak ini terletak pada mengiktiraf bahawa produk terletak dalam #akar-bayang. Untuk mengakses elemen ini, Selenium menyediakan kaedah shadowRoot.querySelector(). Menggunakan kaedah ini, label produk boleh diekstrak menggunakan Strategi Pencari berikut:

<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>
Salin selepas log masuk

Menjalankan skrip ini mengeluarkan label produk:

<code class="text">La especial mezcla de nueces, maní, almendras y marañones x 450 g</code>
Salin selepas log masuk

Rujukan:

Untuk mendapatkan maklumat lanjut, rujuk sumber berikut:

  • Tidak dapat mengesan elemen Log Masuk dalam #shadow-root (open) menggunakan Selenium dan Python
  • Bagaimana untuk mencari medan Nama pertama dalam shadow-root (terbuka) dalam laman web https://www.virustotal.com menggunakan Selenium dan Python

Nota:

Mengenai Microsoft Edge dan Google Chrome versi 96, perubahan kepada nilai pulangan akar bayangan untuk Selenium telah diperkenalkan. Rujuk pautan yang disediakan dalam penyelesaian untuk mendapatkan maklumat lanjut tentang menangani perubahan ini dalam bahasa pengaturcaraan yang berbeza.

Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Maklumat Tersembunyi daripada #shadow-roots Menggunakan Selenium Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php
Kenyataan Laman Web ini
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 terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan