Python Selenium

【Python】SeleniumでHTMLタグの属性値を取得する

この記事は約4分で読めます。

 

 

本記事ではPythonのSeleniumにおける、要素の属性名からその属性の値(属性値)を取得する方法について解説していきます。

HTMLの要素とは以下のような構成となっています。

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オブジェクトについて詳しくは以下記事をご参照ください。

 

私はよく属性hrefやvalue、id、classの属性値を取得するのにget_attribute()を利用します。例えば次のようなa要素があるとします。
 <a href="https://tkstock.site/" id="link">リンク</a>
上記のa要素のWebElementオブジェクトを生成して、hrefの属性値を取得するには次のように記述します 

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でのスクレイピングでよく使うサンプルコードまとめ

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

タイトルとURLをコピーしました