使用 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中文网其他相关文章!