HTML
 Computer >> コンピューター >  >> プログラミング >> HTML

PythonとSelenium WebDriverでWebElementのHTMLソースを取得する方法


Selenium WebDriverを使えば、ページ上の任意のWebElement(Web要素)のHTMLソースを簡単に取得できます。最も基本的な方法は、要素が持つinnerHTML属性を取得することです。

innerHTMLは、開始タグと終了タグの間に存在する内容(内部のHTMLマークアップを含む)に相当する属性です。取得にはget_attributeメソッドを使用し、引数として「innerHTML」を渡します。

構文

s = element.get_attribute('innerHTML')

もう一つの方法として、JavaScript Executorを利用してHTMLソースを取得することもできます。この場合、execute_scriptメソッドを使い、第一引数に「arguments[0].innerHTML」、第二引数にHTMLソースを取得したい対象のWebElementを渡します。

構文

s = driver.find_element_by_id("txt-search")
driver.execute_script("return arguments[0].innerHTML;", s)

具体例

例えば、次のようなHTMLコードを持つ要素を考えてみます。この要素のinnerHTMLはYou are browsing the best resource for <b>Online Education</b>となります。

PythonとSelenium WebDriverでWebElementのHTMLソースを取得する方法

get_attributeメソッドを使った実装例

from selenium import webdriver

driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
# 暗黙的な待機を設定
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")
# 要素を特定し、get_attributeでinnerHTMLを取得
l = driver.find_element_by_css_selector("h4")
print("HTML code of element: " + l.get_attribute('innerHTML'))

JavaScript Executorを使った実装例

from selenium import webdriver

driver = webdriver.Chrome(executable_path="C:\\chromedriver.exe")
# 暗黙的な待機を設定
driver.implicitly_wait(0.5)
driver.get("https://www.tutorialspoint.com/index.htm")
# 要素を特定し、execute_scriptでinnerHTMLを取得
l = driver.find_element_by_css_selector("h4")
h = driver.execute_script("return arguments[0].innerHTML;", l)
print("HTML code of element: " + h)

なお、Selenium 4以降ではfind_element_by_css_selector()などの個別の要素検索メソッドは非推奨となっています。最新のSeleniumでは、from selenium.webdriver.common.by import Byをインポートしたうえで、driver.find_element(By.CSS_SELECTOR, "h4")のように記述することが推奨されます。

実行結果

PythonとSelenium WebDriverでWebElementのHTMLソースを取得する方法


  1. PythonとSeleniumを使ったFacebook自動ログインの実装方法

    Pythonには「Selenium」というパッケージがあり、これを利用することでWebドライバーを介したブラウザ操作を自動化できます。本記事では、PythonのSeleniumパッケージを使ってFacebookに自動ログインする方法を解説します。 全体の流れ Seleniumは、Webブラウザの操作を自動化・制御するための強力なパッケージです。このプログラムを実行するには、Python環境へのSeleniumのインストールに加えて、「geckodriver」と呼ばれるドライバーソフトウェアが必要になります。以下の手順で実現できます。 ステップ1:Seleniumのインストール まず、Pyt

  2. PythonとSeleniumでWhatsAppチャットボットを作る方法

    はじめに この記事では、Pythonを使ってWhatsAppのチャットボットを作成する方法を解説します。TwitterやFacebook向けの一般的なチャットボットとは異なり、WhatsAppは運営ポリシーの関係上、プラットフォーム上で直接ボットを動かすことができません。 しかし、SeleniumというPythonの強力なパッケージを使えば、ブラウザの操作を自動化することでこれを実現できます。Seleniumを利用すれば、ブラウザ経由で「WhatsApp Web」を自由に操作できるのです。 必要なもの 準備が必要なのは、主に以下の3点です。 1. Selenium Seleniumはpip