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:
Nota:
Microsoft Edge dan Google Chrome versi 96 memperkenalkan perubahan dalam pengendalian akar bayang. Untuk maklumat terkini, sila rujuk sumber berikut:
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!