PGLのポケモンデータの取得
CPPXのP2です。
ポケモングローバルリンク(PGL)のデータ取得に関して書きます。
経緯
- PGLに表示されていないデータ(31位以下の使用ランキングなど)が見たい。
- PGL DATABASEなるサイトが現れる。
- ということはデータは存在するはずだから、頑張れば見れるはず。
- firefoxのデバッグ機能でPGLを眺めてたらそれっぽいデータの送受信があった。
- pythonで取得してみた。
ソースコード
import requests from pprint import pprint url = "https://3ds.pokemon-gl.com/frontendApi/gbu/getSeasonPokemonDetail" headers = { "Host": "3ds.pokemon-gl.com", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0", "Accept": "*/*", "Accept-Language": "ja,en-US;q=0.7,en;q=0.3", "Accept-Encoding": "gzip, deflate, br", "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "X-Requested-With": "XMLHttpRequest", "Referer": "https://3ds.pokemon-gl.com/battle/", "Content-Length": "287", "Cookie": "site=1; language_id=1; region=0; _ga=GA1.2.580975419.1428913003; __ulfpc=201504131716426123; __utma=234147713.580975419.1428913003.1478879399.1479779450.3; __utmz=234147713.1478879399.2.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); s_fid=289F92E7E204472A-0769DD1F44BC4871; JSESSIONID=5F24620B34540182F0F1BC00A84A37CA; AWSELB=C95303410E583113FAF27D987FE57908F5BE8EE44B6EBF706FE32F03B8330D7D6AD01D27A6F20CC82C78B897C0BDF400DADB24277E7E8E3D98F717A77FD139BBF11516937C2B9D32F765752A4099B015B3E471B8C9; NO_MEMBER_DATA=%7B%22language_id%22%3A1%2C%22site%22%3A1%2C%22region%22%3A0%7D; s_cc=true; _gat=1", "Connection": "keep-alive", } payload = { "languageId":1, "seasonId":203, "battleType":6, "timezone":"JST", "pokemonId":"59-0", "displayNumberWaza":10, "displayNumberTokusei":3, "displayNumberSeikaku":10, "displayNumberItem":10, "displayNumberLevel":10, "displayNumberPokemonIn":10, "displayNumberPokemonDown":10, "displayNumberPokemonDownWaza":10, "timeStamp":1490804393369 } r = requests.post(url, headers=headers, data=payload) pprint(r.json())
payloadのdisplayNumberやpokemonIdを変えるといろいろ取得できます。
取り急ぎ更新します。
後日追記修正(コードの説明とか)するかもです。