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을 사용하여 섀도우 루트에서 데이터를 추출하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!