ホームページ  >  記事  >  バックエンド開発  >  Selenium Python を使用してシャドウ ルート要素から製品情報を抽出する方法

Selenium Python を使用してシャドウ ルート要素から製品情報を抽出する方法

Susan Sarandon
Susan Sarandonオリジナル
2024-10-19 06:40:02338ブラウズ

How to Extract Product Information from Shadow-Root Elements Using Selenium Python?

Selenium Python を使用したシャドウ ルート要素からの情報の抽出

この投稿では、Web サイト https から製品情報を抽出する問題について説明します。 ://www.tiendasjumbo.co/buscar?q=mani。これらの要素は #shadow-root (open) 要素内に配置されるため、従来の抽出方法は無効になります。

Shadow-Root を理解する

Shadow-root はテクニックですDOM 要素をカプセル化して、メインの HTML ドキュメントから非表示にするために使用されます。シャドウ ルート内の要素にアクセスするには、特定のシャドウ ルート ロケーターを使用する必要があります。

解決策: ShadowRoot.querySelector() を使用する

製品ラベルを抽出するには、次の戦略を実装します:

  1. シャドウ ルートにアクセスします: インパルス検索要素を取得し、そのシャドウ ルートにアクセスします。
  2. 使用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 の製品ラベルを印刷します。

追加メモ:

  • Microsoft Edge および Google Chrome バージョン 96 の場合、シャドウ ルート アクセスを処理するには特定のテクニックが必要です。詳細については、提供されている参考資料を参照してください。
  • 詳細な説明と例については、参考資料が含まれています。

以上がSelenium Python を使用してシャドウ ルート要素から製品情報を抽出する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。