検索
ホームページバックエンド開発Python チュートリアルSelenium Python を使用してシャドウ ルートからデータを抽出する方法

How to Extract Data from a Shadow Root Using Selenium Python?

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>

解決策:

Web ページ内の製品はシャドウ ルート内にカプセル化されています。これらの要素にアクセスするには、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

参照:

  • [Selenium と Python を使用して #shadow-root (open) 内でサインイン要素を見つけることができません](https://stackoverflow.com/questions/66779988/unable-to-locate-the-sign-in-element-within- shadow-root-open-using-selenium-a)
  • [Selenium と Python を使用して、Web サイト https://www.virustotal.com 内のshadow-root (open) 内の名フィールドを見つける方法] (https://stackoverflow.com/questions/66820107/how-to-locate-the-first-name-field-within-shadow-root-open-within-the-website)

注:

Microsoft Edge および Google Chrome バージョン 96 では、シャドウ ルートの処理に変更が導入されました。最新情報については、次のリソースを参照してください:

  • Java: https://gist.github.com/chandrashekar4242/c2ef0878241f737cc89ec1878d60f974
  • Python: https://gist.github.com/hongtaocao/6409059fd2bb8d250f925b6b68c3a660
  • C#: https://gist.github.com/skcheidt/4a6a8bca561b403db94c7264a 5a24738
  • Ruby: https://gist.github.com/yuuuke-tanaka1/3493c57d228f759be374aeb0b64e51d9

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

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

Pythonに工場パターンを実装すると、統一されたインターフェイスを作成することにより、さまざまな種類のオブジェクトを作成できます。特定の手順は次のとおりです。1。車両、車、飛行機、列車などの基本クラスと複数の継承クラスを定義します。 2。Factory Class CheerFactoryを作成し、Create_Vehicleメソッドを使用して、型パラメーターに従って対応するオブジェクトインスタンスを返します。 3。my_car = factory.create_vehicle( "car"、 "tesla"など、工場クラスを介してオブジェクトをインスタンス化します。このパターンは、コードのスケーラビリティと保守性を向上させますが、その複雑さに注意を払う必要があります

Python Original Stringプレフィックスではrの意味がありますPython Original Stringプレフィックスではrの意味がありますMay 16, 2025 pm 12:36 PM

Pythonでは、RまたはRプレフィックスを使用して元の文字列を定義し、逃げたすべての文字を無視し、文字列を文字通り解釈します。 1)脱出キャラクターの誤解を避けるために、正規表現とファイルパスに対処するために適用されます。 2)ラインブレークなど、逃げたキャラクターを保存する必要がある場合には適用されません。予期しない出力を防ぐために使用する場合は、慎重なチェックが必要です。

Pythonの__del__メソッドを使用してリソースをクリーンアップする方法は?Pythonの__del__メソッドを使用してリソースをクリーンアップする方法は?May 16, 2025 pm 12:33 PM

Pythonでは、__del__メソッドはオブジェクトの破壊者であり、リソースのクリーンアップに使用されます。 1)不確実な実行時間:ごみ収集メカニズムに依存します。 2)循環参照:それにより、コールを迅速にできなくなり、weakRefモジュールを使用して処理することがあります。 3)例外処理:__del__でスローされた例外は、Try-Exectブロックを使用して無視され、キャプチャされる場合があります。 4)リソース管理のためのベストプラクティス:リソースを管理するためにステートメントとコンテキストマネージャーで使用することをお勧めします。

PythonリストのPOP()関数の使用POP要素削除方法詳細な説明PythonリストのPOP()関数の使用POP要素削除方法詳細な説明May 16, 2025 pm 12:30 PM

POP()関数は、Pythonで使用され、リストから要素を削除し、指定された位置を返します。 1)インデックスが指定されていない場合、POP()はデフォルトでリストの最後の要素を削除および返します。 2)インデックスを指定するとき、POP()はインデックス位置で要素を削除および返します。 3)インデックスエラー、パフォーマンスの問題、代替方法、および使用時のリストの変動に注意してください。

画像処理にPythonを使用する方法は?画像処理にPythonを使用する方法は?May 16, 2025 pm 12:27 PM

Pythonは、主に2つの主要なライブラリピローとOpenCVを使用して画像処理に使用しています。枕は、透かしの追加などの単純な画像処理に適しており、コードはシンプルで使いやすいです。 OpenCVは、優れたパフォーマンスを備えたエッジ検出などの複雑な画像処理とコンピュータービジョンに適していますが、メモリ管理に注意が必要です。

Pythonで主成分分析を実装する方法は?Pythonで主成分分析を実装する方法は?May 16, 2025 pm 12:24 PM

PythonでPCAの実装は、手動でコードを書くか、Scikit-Learnライブラリを使用して実行できます。 PCAの手動での実装には、次の手順が含まれます。1)データの集中、2)共分散行列の計算、3)固有値と固有ベクトルを計算し、4)主成分をソートして選択し、5)データを新しいスペースに投影します。手動の実装は、アルゴリズムを深く理解するのに役立ちますが、Scikit-Learnはより便利な機能を提供します。

Pythonで対数を計算する方法は?Pythonで対数を計算する方法は?May 16, 2025 pm 12:21 PM

Pythonでの対数計算は非常にシンプルですが興味深いことです。最も基本的な質問から始めましょう:Pythonで対数を計算する方法は? Pythonで対数を計算する基本的な方法PythonのMath Moduleは、計算するための関数を提供します。簡単な例を見てみましょう:Importmath#自然対数(base is e)x = 10natural_log = math.log(x)print(f "natural log({x})= {natural_log}")#を計算します。

Pythonで線形回帰を実装する方法は?Pythonで線形回帰を実装する方法は?May 16, 2025 pm 12:18 PM

Pythonで線形回帰を実装するには、複数の視点から開始できます。これは単なる機能呼び出しであるだけでなく、統計、数学的最適化、機械学習の包括的なアプリケーションを伴います。このプロセスに深く飛び込みましょう。 Pythonで線形回帰を実装する最も一般的な方法は、簡単で効率的なツールを提供するScikit-Learnライブラリを使用することです。ただし、線形回帰の原則と実装の詳細をより深く理解したい場合は、独自の線形回帰アルゴリズムをゼロから書くこともできます。 Scikit-Learnの線形回帰実装により、Scikit-Learnを使用して線形回帰の実装をカプセル化し、簡単にモデル化および予測できるようになります。これがSCの使用です

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!