zKillboardからキルメールを読み込んでExcelかCSVで出力

みなさん?PvPはやっていますか?唐突ですがEVE Onlineには



zKillboard



というウルトラスーパーミラクル便利なサービスがあります。




しかし



普段は英語クライアントを使っていないので敬遠してる方は一定数いるんじゃないんでしょうか?(もしかしたらそんなカプセラはいないかもしれない)


そこで!な、なななんと!!!

zKillboardからキルメールを読み込んでExcelかCSVで出力-1



中国語で出力できるようなスクリプトを書きました!


普段は中国語クライアントで遊んでる方もこれを機会にzKillboardで遊んでみてくてください!(暗黒微笑)

zKillboardからキルメールを読み込んでExcelかCSVで出力-2

※ちなみに既に公式からのサポートが終了している日本語という未知の言語ですが、サポートが切れる前の翻訳データなら対応しています(小声)

非エンジニアの方でも遊べるようにElectronを使ってGUIアプリケーションにして配布する形にしようと思ったんですが…………












zKillboardからキルメールを読み込んでExcelかCSVで出力-3



なんか飽きてきた



ので、とりま今の進捗の記事を書いてトンズラをしようという感じです。

ソースコードを公開しているので興味がある人代わりにやってください!お願いします何でもしますから!←

プルリクエストお待ちしております(にっこり)

zKillboardからキルメールを読み込んでExcelかCSVで出力-4

まぁ茶番もこんな感じにしてスクリプトの説明をガバい感じでやっていきます。

zKillboardの使い方

MURAKU式zkill利用ガイド

zKillboardの見方の一例(未完成記事からの抜粋)

Elite PvPerを目指すためのzKillboardの使い方

適当にここらへんを読んでみてください(適当)

とりあえず動かす



zkillboard2excel

Python 3.6.7で書いています。Pythonの環境構築とかは適当にググってください。

Githubのプロジェクトページの右上からDownload ZIPか git clone をします。

適当な作業フォルダで解凍してターミナル(コマンドプロンプト)を起動して作業フォルダまで移動します。

pip install -r requirements.txt
python zkillboard2excel.py https://zkillboard.com/character/96069434/

こんな感じに zkillboard2excel.py の後にzKillboardのURLを入力するとexport.xlsxというExcel形式のファイルが出力されます。

もちろんGoogleスプレッドシートでも読み込めます。

オプションについて

オプション名 説明
--lang 使用する言語(de, en, fr, ja, ru, zh)
--filepath デスクトップ上に作られるファイル名(パス)
--format 出力するファイル形式(excel or csv)
--clear-cache キャッシュを削除するか
--update-sde SDEのアップデートをチェックするか
--page 読み込む最初のページ
--limit 何ページ読み込むか(1ページは200件)

--lang

今のところCCPがサポートしている(既にサポートしていない言語もありますが)

  • 英語(en)
  • ドイツ語(de)
  • フランス語(fr)
  • ロシア語(ru)
  • 中国語(zh)
  • 日本語(?) - maybe ja

これらの言語で出力できます。

デフォルト(何も指定していない場合)は '--lang=en'

--filepath

保存するファイル名を指定。パスを指定する感じなので別の場所のフォルダも指定できます。

デフォルトは 'export'

--format

出力するファイル形式を指定。

今のところは 'excel' or 'csv' を指定できます。

ExcelとCSVの違いは、Excelの方は色が付いていたり、キャラクターや船の項目にzKillboardのリンクが貼ってたりします。

CSVは情報が少ない代わりにExcelより速いので大量のキルメールを読み込む時はこっちがいいかもです。

デフォルトは '--format=excel'

--clear-cache

ESIから読み込んできたキャラクター名などの情報はキャッシュしていますが、それを消すかどうかです。

'--clear-cache=true' をすればキャッシュが消えます。

今はJSONに全部ぶっこんで保存してる感じなので1億件ぐらいキルメールを読み込むと多分動かないと思います。

数十万件ぐらいのキルメールならキャッシュを消す必要はないと思います(自分の端末のスペックと空き容量に相談してください)

そのうちSQLiteとかを導入するといいかもです(誰かやってください)

デフォルトは '--clear-cache=false'

--update-sde

船やユニバースが新しく実装された時はSTATIC DATA EXPORT (SDE)をアップデートしないといけません。

'--update-sde=true' を指定すればSDEの新しいバージョンがあった時は自動的にアップデートします。

デフォルトは '--update-sde=false'

--page

何ページ目から読み込むか最初のページ数を指定します。

デフォルトは '--page=1'

--limit

最初のページ(--page)から何ページ分読み込むかを指定します

1ページにキルメールは200件です。

例えば --page=3 --limit=4 とすれば 3, 4, 5, 6 の4ページ分(800件)を読み込みます

デフォルトは '--limit=1'

サンプル

<url>はzKillboardのキルメールの一覧が表示されているページならどこでも大丈夫です。

python zkillboard2excel.py <url> --lang=ru --file-path=test1
<url>に表示されるキルメールを読み込んで1ページ目から1ページ分をロシア語で取得し 'test1.xlsx' というファイル名のExcel形式を出力

python zkillboard2excel.py <url> --lang=zh --file-path=test2 --format=csv
<url>に表示されるキルメールを読み込んで1ページ目から1ページ分を中国語で取得し 'test2.csv' というファイル名のCSV形式を出力

python zkillboard2excel.py <url> --lang=de --format=csv --page=2
<url>に表示されるキルメールを読み込んで2ページ目から1ページ分をドイツ語で取得しCSV形式で出力

python zkillboard2excel.py <url> --lang=ja --page=2 --limit=3
<url>に表示されるキルメールを読み込んで2ページ目から3ページ分を日本語で取得しExcel形式で出力

python zkillboard2excel.py <url> --update-sde=true --clear-cache=true
STATIC DATA EXPORT (SDE)をチェックした後に<url>に表示されるキルメールを読み込んで1ページ目から1ページ分を英語で取得しExcel形式で出力し、最後に今までESIから取得したキャッシュデータを消す

おわりに

zKillboardからキルメールを読み込んでExcelかCSVで出力-5

zKillboardからキルメールを読み込んでExcelかCSVで出力-6


お問い合わせや質問など

Discord: EVE Japanese IT
Twitter: @evekatsu

IT系に興味がある人はぜひDiscordの方に遊びにきてみてください。
また、面白いアイデアも随時募集しています!
Twitterの方はフォロー外にDMを解放しています。