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