3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Beautifulsoupを使ってJリーグの順位表をcsvファイルに出力

Posted at

beautifulsoupを使ってJリーグの順位表をcsvファイルに出力

最終目標

最終的には機械学習を使って勝敗予想をするものを作りたいと思っています。

今回行うこと

Jリーグの公式サイトにある過去の順位のデータを取得します。

importするモジュールたち

``` #WEB上のデータ(HTML)にアクセスするために使用 import urllib #HTMLからデータを抽出するために使用 from bs4 import BeautifulSoup #表形式でデータ格納するために使用 import pandas as pd ```

beautifulsoupのインスタンスを生成

``` url = 'https://data.j-league.or.jp/SFRT01/?competitionSectionIdLabel=%E7%AC%AC%EF%BC%91%E7%AF%80&competitionIdLabel=%E6%98%8E%E6%B2%BB%E5%AE%89%E7%94%B0%E7%94%9F%E5%91%BD%EF%BC%AA%EF%BC%91%E3%83%AA%E3%83%BC%E3%82%B0&yearIdLabel=2019%E5%B9%B4&yearId=2019&competitionId=460&competitionSectionId=1&search=search' html = urllib.request.urlopen(url) soup = BeautifulSoup(html, 'html.parser')
今回取得するのは2019年第一節のデータです。
Beautifulsoupのインスタンスはそのページのhtmlが入っています

<h2>ファイル名を決める</h2>

#ファイル名の取得
h3 = soup.find_all('h3', class_='standings-title')[0]
filename = h3.get_text().strip() + '.csv'


<h2>データの取得</h2>

#データ格納用
headData = []
teamData = []

for i, row in enumerate(rows):
#一行目
if i == 0:
for headerValue in row.find_all('th'):
headData.append(headerValue.get_text())
#最初と最後から三つを削除
del headData[0]
del headData[-4:]

elif(i > 0) and (i  < len(rows)):
    #明細部取得
    teamrow = []
    for teamValue in row.find_all('td'):
        text = teamValue.get_text()
        teamrow.append(text.strip())#\nや\rを削除
    #最初と最後から三つを削除
    del teamrow[0]
    del teamrow[-4:]
    teamData.append(teamrow)
文字列データのstrip()メソッドは\nとか空白とかを削除してくれます

<h2>csvファイルに出力</h2>

#表にする
df = pd.DataFrame(data = teamData, columns = headData)

df.to_csv(filename, sep = ',', header = True, index = False, encoding='utf_8_sig') #ファイルに出力

encodingを指定しないと文字化けするので注意してください

<h2>終わりに</h2>
初めてquitaの記事を書いたので難しかったです(笑)
これからも自分のoutputを書いていくので参考になれば幸いです
3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?