LoginSignup
12
17

More than 5 years have passed since last update.

デレマスで機械学習(データ取得編)

Last updated at Posted at 2017-04-01

先日、話題のcouseraの機械学習のコースを修了したので、実践で試すためアイドルマスターシンデレラガールズのプロフィールデータを使って3つのタイプ(Cu,Co,Pa)の予測に挑戦してみます。

データの取得

まずは学習に使用するデータの取得です。
ポケモンapiのデレマス版がないか探したのですが、良さそうなのがなかったので、普通にデレマスのwikiからデータを取得しました。

スクレイピングのやり方は以下のページ等を参考にしました。
http://qiita.com/Azunyan/items/9b3d16428d2bcc7c9406

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import urllib2
import csv
from bs4 import BeautifulSoup

# アクセスするURL
url = "https://imascg-slstage-wiki.gamerch.com/%E3%82%A2%E3%82%A4%E3%83%89%E3%83%AB%E4%B8%80%E8%A6%A7"
# URLを読み込み
html = urllib2.urlopen(url)
# htmlをBeautifulSoupで扱う
soup = BeautifulSoup(html, "html.parser")
#1つ目のテーブル内容を全取得
table = soup.findAll("table")[0]
#tableを1行ごとに分解
rows = table.findAll("tr")

csvFile = open("aimasudata.csv", 'wt')
writer = csv.writer(csvFile)
for row in rows:
    csvRow = []
    for cell in row.findAll(['td', 'th']):
        csvRow.append(cell.get_text().encode('utf-8'))
    writer.writerow(csvRow)

結果

こんな感じ
スクリーンショット 2017-04-01 23.10.30.png

メモ

  • htmlのタグの見方がわからずsoup.findAllの取得先探すのに時間がかかった。とりあえず表のデータを取得する場合はtableを指定し、それが同じページ内の何番目の表かを把握すれば良い
  • 日本語のデータに対してcell.get_text()を使うとアスキーコードは使えんとか言われるので、utf-8へのエンコードが必要
12
17
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
12
17