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

先日、話題の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へのエンコードが必要

『 Python 』Article List