日本プロ野球はこんなサイトがあって、対象の選手をクリックするとその人のプロフィールや成績が見れるので、Pythonの Beautiful Soupを使って雑にスクレイピングしてみた
Beautiful Soupをインストール
Beautiful SoupはWebページの記法であるHTMLを良い感じにパースしてくれるライブラリです。
入れてない場合は、以下のコマンドでインストールできます。
$ pip install beautifulsoup4
ライブラリを読み込む
from urllib.request import urlopen
from bs4 import BeautifulSoup
まずは一覧ページにある選手のリンク先を取得する
# スクレイピングするページのurl(阪神タイガース選手一覧)
url = 'http://npb.jp/bis/teams/rst_t.html'
htmlData = urlopen(url).read()
htmlParsed = BeautifulSoup(htmlData, 'html.parser')
各々の選手プロフィールを取得してスクレイピング
for div in htmlParsed.select('.rosterRegister a'):
player_url = 'http://npb.jp' + div.get("href")
player_htmlData = urlopen(player_url).read()
htmlParsed2 = BeautifulSoup(player_htmlData, 'html.parser')
print(div.string)
for detail in htmlParsed2.select('.registerDetail'):
print(detail.string)
print('--------------------')
最終的にはこんな感じ
# ライブラリの読み込み
from urllib.request import urlopen
from bs4 import BeautifulSoup
# スクレイピングするページのurl(阪神タイガース選手一覧)
url = 'http://npb.jp/bis/teams/rst_t.html'
htmlData = urlopen(url).read()
htmlParsed = BeautifulSoup(htmlData, 'html.parser')
for div in htmlParsed.select('.rosterRegister a'):
player_url = 'http://npb.jp' + div.get("href")
player_htmlData = urlopen(player_url).read()
htmlParsed2 = BeautifulSoup(player_htmlData, 'html.parser')
print(div.string)
for detail in htmlParsed2.select('.registerDetail'):
print(detail.string)
print('--------------------')
取得結果 はこんな感じ
榎田 大樹
えのきだ・だいき
1986年8月7日生 身長181cm 体重92kg 左投 左打
小林西高 - 福岡大 - 東京ガス
2010年ドラフト1位
--------------------
能見 篤史
のうみ・あつし
1979年5月28日生 身長180cm 体重72kg 左投 左打
鳥取城北高 - 大阪ガス
2004年ドラフト自由枠
--------------------
横山 雄哉
よこやま・ゆうや
1994年2月21日生 身長183cm 体重83kg 左投 左打
山形中央高 - 新日鉄住金鹿島
2014年ドラフト1位
--------------------
長いので省略