Pythonで2018年紅白歌合戦出場者をWebスクレイピングしてみる

最近、紅白歌合戦の出場者が発表されたので、選ばれた歌手の名前と出場回数をWebスクレイピングしてみたいと思います。

ライブラリのインストール

使用するのはBeautifulSoupとRuequestsです。
RequestsはWebサイトから情報を取得したりすることができるライブラリです。BeautifulSoupはWebからの文章htmlを整形し、自分が欲しいように取得できるライブラリです。

BeautifulSoupをインストールする。

$pip install beautifulsoup4

requestsをインストールする。

$pip install requests

以下のコードを実行する。

import requests
from bs4 import BeautifulSoup

r = requests.get("https://www.nhk.or.jp/kouhaku/artist/index.html")

soup = BeautifulSoup(r.content, "html.parser")

for i in soup.select("li"):
    print(i.getText())

requests.get("https://www.nhk.or.jp/kouhaku/artist/index.html")でURLを書き、 BeautifulSoup(r.content, "html.parser")で取得したHTMLを整え、for i in soup.select("li"): print(i.getText())で出力しています。

そして、結果は以下のようになります。

aiko(13)
あいみょん(初)
いきものがかり(10)
石川さゆり(41)
AKB48(11)
丘みどり(2)
欅坂46(3)
坂本冬美(30)
島津亜矢(5)
Superfly(3)
DAOKO(初)
天童よしみ(23)
TWICE(2)
西野カナ(9)
乃木坂46(4)
Perfume(11)
松田聖子(22)
松任谷由実(3)
MISIA(3)
水森かおり(16)
Little Glee Monster(2)
嵐(10)
五木ひろし(48)
EXILE(12)
関ジャニ∞(7)
King & Prince(初)
郷ひろみ(31)
Suchmos(初)
三代目 J Soul Brothers(7)
純烈(初)
SEKAI NO OWARI(5)
Sexy Zone(6)
DA PUMP(6)
氷川きよし(19)
福山雅治(11)

Hey! Say! JUMP

.hsj path {
fill: #c28e34 ;
}

(2)

星野源(4)
三浦大知(2)
三山ひろし(4)
山内惠介(4)
ゆず(9)
YOSHIKI feat. HYDE(初)

こんな感じで出力されるはずです。


Hey!Say!JUMPだけ他とは違い、なぜかSVGで書かれていたので変な感じになりましたが、なんとかできました。