本記事ではPythonのSeleniumにおける、要素の属性名からその属性の値(属性値)を取得する方法について解説していきます。
HTMLの要素とは以下のような構成となっています。
属性はこのHTML要素の開始タグに「属性名=属性値」の書式で追加します。属性は複数指定することが可能であり、半角スペースで区切って指定できます。
<要素名 属性名1=属性値 属性名2=属性値>…</要素名>
主に利用される属性は以下のようなものがあります。
属性名 | 説明 |
---|---|
id | 要素に固有の名前を指定 |
class | 要素に分類名を指定 |
href | リンクのURL |
alt | 画像のリンク |
このような要素に指定された属性名から属性値を取得する方法について解説していきます。
要素の属性名から属性の値(属性値)を取得
get_attribute()メソッドとは
Seleniumには要素の属性名から属性値を取得するためのメソッドとしてget_attribute()メソッドが用意されています。get_attribute()の引数に属性名を指定すると、対象要素からその属性名の属性値が返されます。
driver.get_attribute(属性名)
WebElementオブジェクトはfind_element_by_*メソッドで生成されるオブジェクトです。find_element_by_*メソッドやWebElementオブジェクトについて詳しくは以下記事をご参照ください。
<a href="https://tkstock.site/" id="link">リンク</a>
element = driver.find_element_by_id("link")
link = element.get_attribute('href')
上記ではhrefの属性値は変数linkに格納されます。
対象の要素に指定した属性名がなかった場合、Noneが返されます。
get_attribute()メソッドの利用法
実際にSeleniumでブラウザを起動して、属性名から属性値を取得するコードを見てみましょう。
前準備
# ライブラリをインストールする $ pip install webdriver-manager $ pip install selenium
from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.common.desired_capabilities import DesiredCapabilities url = 'https://tkstock.site/' d = DesiredCapabilities.CHROME d['goog:loggingPrefs'] = { 'performance': 'ALL' } driver = webdriver.Chrome(ChromeDriverManager().install(),desired_capabilities=d) driver.set_window_size('1200','1000') driver.get(url)
このようにget_attribute()メソッドを利用すると、非常に簡単にhrefやvalueなどから属性値を取得することができます
関連記事:【Python】Seleniumでファイルをアップロードするサンプルコード
関連記事:【Python】Seleniumでのスクレイピングでよく使うサンプルコードまとめ
コメント