将棋倶楽部24のユーザー情報を集めたい
将棋倶楽部24のユーザー情報をスクレイプして、JSON化する。 サークルメンバーのレートや勝敗の変動を観察する目的。
名簿で検索し、それをコピペ、csvにして保存。 保存したcsvをプログラムでJSON化する。
csvにする過程もPythonで行いたいがrequest_htmlではうまくいかないようだ。
import csv import json from time import sleep from requests_html import HTMLSession session = HTMLSession() usersdb = [] def read_csv(): data = [] with open('example.csv', 'r') as f: reader = csv.reader(f) next(reader) for row in reader: data.append((row[1], row[-1])) return data def fetchUserData(arg): tpl_url = 'https://www.shogidojo.net/event/user/personal.php?id={}' url = tpl_url.format(arg) r = session.get(url) sleep(3) return r def createUserDB(arg): global usersdb data = [] r = fetchUserData(arg) for tr in r.html.find('tr'): pat = ['th', 'td'] data.append([t.text for p in pat for t in tr.find(p)]) name_date = [s for s in r.html.find('.fontB', first=True).text.split('\u3000') if s != ''] result = [val for dt in data for val in zip(dt[:2], dt[2:])] user = {name_date[0]:result, 'date':name_date[1]} usersdb.append(user) def save_UserDB(): with open('users_db.json', 'w') as f: json.dump(usersdb, f) def main(): [createUserDB(uid) for name, uid in read_csv()] save_UserDB() main()
Pythonクローリング&スクレイピング -データ収集・解析のための実践開発ガイド-
- 作者: 加藤耕太
- 出版社/メーカー: 技術評論社
- 発売日: 2016/12/16
- メディア: 大型本
- この商品を含むブログ (3件) を見る
- 作者: Ryan Mitchell,嶋田健志,黒川利明
- 出版社/メーカー: オライリージャパン
- 発売日: 2019/03/26
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る