Selenium Python を使用したシャドウ ルート要素からの情報の抽出
この投稿では、Web サイト https から製品情報を抽出する問題について説明します。 ://www.tiendasjumbo.co/buscar?q=mani。これらの要素は #shadow-root (open) 要素内に配置されるため、従来の抽出方法は無効になります。
Shadow-Root を理解する
Shadow-root はテクニックですDOM 要素をカプセル化して、メインの HTML ドキュメントから非表示にするために使用されます。シャドウ ルート内の要素にアクセスするには、特定のシャドウ ルート ロケーターを使用する必要があります。
解決策: ShadowRoot.querySelector() を使用する
製品ラベルを抽出するには、次の戦略を実装します:
コード例:
<code class="python">from selenium import webdriver from random import randint driver = webdriver.Firefox(executable_path="C:\Program Files (x86)\geckodriver.exe") time.sleep(4) url = "https://www.tiendasjumbo.co/buscar?q=mani" driver.maximize_window() driver.get(url) 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>
このコードは、指定された URL の製品ラベルを印刷します。
追加メモ:
以上がSelenium Python を使用してシャドウ ルート要素から製品情報を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。