EVEにおける様々な管理・計算をするときに Google spreadsheets は大変重宝します。
今回は、Google spreadsheets で、EVE-Central.com からアイテムの価格を自動で取得する方法の tips です。
EVE-Central.com のAPI
EVE-Central.com は、価格をCSVやXMLで取得するためのAPIを提供しています。EVE-Central.com のDeveloper Integrationを見ると実際にXMLを取得するためのルールと、例があります。
http://api.eve-central.com/api/marketstat?typeid=34®ionlimit=10000002
このようなアドレスにアクセスすることで、XMLを取得できることが体験できます。
ここでの typeid=34 とは、Tritanium のことです。regionlimit=10000002 は、Jitaの存在する The Forge を意味します。
各種アイテムのTypeID の調べ方は、後ほど。
※EVE-Central はよくサーバーダウンしています。うまくいかないときの原因として、サーバーダウンの可能性を常に考慮する必要があります。
Google spreadsheets での価格XMLの取得
XMLの取得は、ImportXML関数を利用します。そして、第2引数で、取得したいXMLのパスを指定します。
実際に以下の式をセルに埋めてみます。
=ImportXML("http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=34", "//sell/min") =ImportXML("http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=34", "//buy/max")
上側のセルに表示されるのが、販売価格(Sellers)。下側が、買取価格(Buyers)です。
第2引数の書式は、ヘルプによると XPath の形式で指定します。ヘルプにXPathの説明ページへのリンクがありますが、分かりづらいです。XPath Examplesのページを見れば何となくニュアンスが分かります(えー?)
なお、この関数は、spreadsheets内で、50個しか利用できません。このままでは、50個の価格しか調査できないことになります。そこで、1回の利用で、必要なXMLを一気に取得する必要があります。
=ImportXML("http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=34&typeid=35&typeid=36&typeid=37&typeid=38", "//sell/min")
このように typeid を列挙することで、一気に値を取得します。(上記を試す際には、式を入れたセルの下側を空欄にしておくこと)
しかし、今度は、EVE-Centralの上限にぶつかります。 EVE-Central は同時に100個までしかtypeidの列挙を許していません。このため、100個ごとに分けて、ImportXML関数を利用します。
書き途中…以下、メモ書き的ナニカ
書き途中と思ってたけど、上記内容で十分な気もしてきました。
でもない?
あとは、「単価(とか、@Priceとか、、)」ってシートを作って、別シートから VLOOKUP関数で参照します。
=VLOOKUP($B6,'@Price'!$B$32:$D$51, 2, )
こんなところかな?
今度、画像をキャプチャーして貼り付けてみようかな。
=ImportXML(“http://api.eve-central.com/api/marketstat?regionlimit=10000002&typeid=34”, “//sell/min”)
だと ザ・フォージ全体のマーケット情報呼び出してしまうので
リンクの中の「regionlimit=10000002」という部分を「usesystem=30000142」とすると
ジタ内のみの情報を呼び出せます
かいなさん、ご指摘ありがとうございます。usesystem指定重要ですね。
もしご興味ございましたら下記の記事もご参考頂ければと思います。
[Spreadsheet と EVE-Central で生産の利益計算]
http://meslon.jp/eve/archives/925
[[補足]Spreadsheet と EVE-Central で生産の利益計算の補足]
http://meslon.jp/eve/archives/993
補足の方で、usesystem指定について触れております。
古い記事なので、どこまで今でも通用するのか分かりませんが。。
読ませていただいていますが
どうもよく解りませんでした。
ど素人です。
APIで自分の情報を取得してゲームの外で見たいのですが
どうすればいいですか?
そのようなサイトかフリーアプリはございますか?
この記事は、マーケットの価格情報を取得するための手法を解説したものとなります。
自分の情報を取得するには、別の方法が必要となります。
> そのようなサイトかフリーアプリはございますか?
最新のアプリ事情は把握していませんが、私は EVEMon を利用して、所持金や生産の進捗具合、メールの新着などを確認しています。
EVEMonは、日本語での説明サイトも多いと思いますので、私からはこれをおすすめいたします 🙂