広告

python×seleniumで<a>リンクのhrefを取得する方法

aタグ内のhref属性を取得する時に、[](スクエアブラケット)だったっけ?と、どうしてもseleniumの操作を思い出せない方もいるのではないでしょうか?(自分も)そこで今回はpythonのライブラリseleniumでhref属性の中身(URL)を取得する方法を解説していきます。

ここで学べる事:

  • pythonのライブラリにあるseleniumを使って、aタグ内に記載されたhref属性の中身を取得する

aタグのhref属性を取得するために必要なライブラリ

  • seleniumを使ってブラウザ操作を自動化するライブラリです。
  • webdriverは、Chrome()やFirefox()といった操作するブラウザを選択します

aタグのhref属性を取得するステップ

  1. seleniumのwebdriverをインポートする
  2. Chromeを起動する(FirefoxなどほかのブラウザもOK)
  3. Chromeのwebdriverでhrefを取得したいサイトを開く
  4. aタグが存在する要素を指定する
  5. 指定したaタグからhref属性の中身をget_attribute(‘href’)で取得する

seleniumのwebdriverをインポートする

まずはseleniumをインポートして使えるようにします。

Chromeを起動する(FirefoxなどほかのブラウザもOK)

次にChromeを起動します。

Chromeのwebdriverでhrefを取得したいサイトを開く

hrefを取得するページのURLをgetで取得します。

aタグが存在する要素を指定する

hrefを取得するために、aタグの要素を指定します。例えば以下のhtmlファイルのソースがあると仮定します。

上記の場合、find_element_by_class_nameで、aタグを含めたpタグを取得します。その上でaタグを取得します。

上記のソースだけであれば、pタグを取得せずとも直接aタグを指定することもできますが、aタグが複数ある場合の実務上も考慮して、class属性を指定した上での方法を選択しています。

指定したaタグからhref属性の中身をget_attribute(‘href’)で取得する

aタグも含めた要素を取得したら、aタグ要素のみを抽出します。aタグを抽出したら、get_attribute(‘href’)でhref属性を取得します。変数に格納したhref属性の中身を確認したいなら、print()で可能です。

結論:get_attribute()を使ってhref属性の中身が取得できる

つまり、aタグを指定した上で、get_attribute()メソッドを使い、get_attribute(‘href’)を記述すればhref属性を取得することができます。