使用Selenium Python 從影子根提取資訊
在提供的URL https://www.tiendasjumbo.co/ 的上下文中Buscar ?q=mani,從#shadow-root(開放)中的元素提取資訊提出了挑戰。以下程式碼片段說明了這個問題:
<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>
解決方案:
網頁中的產品封裝在影子根中。要存取這些元素,必須使用shadowRoot.querySelector()方法。以下代碼演示了此策略:
<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>
輸出:
La especial mezcla de nueces, maní, almendras y marañones x 450 g
參考:
注意:
Microsoft Edge 和Google Chrome 版本96 引入了影子根處理方面的變更。如需更新信息,請參閱以下資源:
以上是如何使用 Selenium Python 從 Shadow Root 擷取資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!