5Python5(ゴーパイソンゴー)

プログラミングに挫折したわたしが一流のPython使いになるまでの備忘録

Webスクレイピングで、タグの属性値を取得する方法

Webスクレイピングしたタグの特定の属性値を取得する方法をご紹介します。

まず「属性値」についてのおさらいです。
例えば以下のようなタグの場合で考えてみましょう。

<a href="/sports/item/65406540/" class="sold_out no_img" target="_blank" sample="this is sample">スノーボードセット</a>

このよくあるタイプのaタグでいうと、
href、class、target等…は属性にあたります。

属性値は、この属性の中に入っている値のことを指します。

属性「href」の属性値は「/sports/item/65406540/」
属性「class」の属性値は「sold_out」、「no_img」の2つ
属性「target」の属性値は「_blank」
ということになりますね。

それでは、Webスクレイピングで属性値を取得する方法です。
属性値を取得する場合は、「get」取得したい属性を指定します。

下記はサンプルコードです。

text = '<a href="/sports/item/65406540/" class="sold_out no_img" target="_blank" sample="this is sample">スノーボードセット</a>'

bsobj = BeautifulSoup(text, 'lxml')

a_sourse = bsobj.find('a')

a_sourse
# <a href="/sports/item/65406540/" class="sold_out no_img" target="_blank">スノーボードセット</a>

a_sourse.get('href')
# /sports/item/65406540/

a_sourse.get('class')
# ['sold_out', 'no_img']

a_sourse.get('target')
# _blank

# 自分で作った任意の属性にも利用できます。
a_sourse.get('sample')
# this is sample