自然言語処理100本ノック2020から逃げるな「29. 国旗画像のURLを取得する」

これは自然言語処理100本ノック2020に挑んだ、とある人間の記録
他の問題はこちら → 自然言語処理100本ノック2020から逃げるな まとめ

29. 国旗画像のURLを取得する

テンプレートの内容を利用し,国旗画像のURLを取得せよ.(ヒント: MediaWiki APIimageinfoを呼び出して,ファイル参照をURLに変換すればよい)

Pythonコード

import NLP100_28
import requests
import webbrowser

def get_url(titles):
    S = requests.Session()

    URL = "https://en.wikipedia.org/w/api.php"

    PARAMS = {
        "action":"query",
        "format":"json",
        "prop":"imageinfo",
        "titles":titles,
        "iiprop":"url"
    }

    R = S.get(url=URL, params=PARAMS)

    DATA = R.json()
    # pprint(DATA)

    PAGES = DATA["query"]["pages"]

    for v in PAGES.values():
        return v["imageinfo"][0]["url"]

if __name__ == "__main__":
    dict = NLP100_28.get_template_no_mediawiki_markup()
    for k, v in dict.items():
        if k == "国旗画像":
            url = get_url("File:" + v)
            print(url)
            webbrowser.open(url)

28. MediaWikiマークアップの除去で作成したget_template_no_mediawiki_markup関数を利用しています。

実行結果

https://upload.wikimedia.org/wikipedia/en/a/ae/Flag_of_the_United_Kingdom.svg

↓の画像のページのurlです。 https://upload.wikimedia.org/wikipedia/en/a/ae/Flag_of_the_United_Kingdom.svg