Example #1
0
# 29. 国旗画像のURLを取得する
# テンプレートの内容を利用し,国旗画像のURLを取得せよ.
# (ヒント: MediaWiki APIのimageinfoを呼び出して,ファイル参照をURLに変換すればよい)
from chapter03.ex20 import extract_england
from chapter03.ex28 import remove_markups
from urllib import parse
from urllib import request
import json

result = remove_markups(extract_england())

url = "https://www.mediawiki.org/w/api.php?" \
    + "action=query" \
    + "&titles=File:" + parse.quote(result["国旗画像"]) \
    + "&format=json" \
    + "&prop=imageinfo" \
    + "&iiprop=url"

# MediaWikiへリクエスト送信
req = request.Request(url, headers={"User-Agent": "NLP100_Python(@segavvy)"})
connection = request.urlopen(req)

# jsonとして受信
data = json.loads(connection.read().decode())
# print(data)

# URL取り出し
image_info = data["query"]["pages"]["-1"]["imageinfo"]
# print(image_info)
result_url = image_info[0]["url"]
Example #2
0
# 23. セクション構造
# 記事中に含まれるセクション名とそのレベル(例えば"== セクション名 =="なら1)を表示せよ.
from chapter03.ex20 import extract_england
import re

contents = extract_england()
# セクション名の書式 == セクション名 ==
# レベルが上がるほど=の数が増える
ptn = re.compile(r"(={2,})\s*(.+?)\s*={2,}")

result = ptn.findall(contents)
for line in result:
    # line[0]にはセクションのレベルが入っている
    level = len(line[0]) - 1
    print("Level: " + str(level) + ", Section: " + line[1])