Exemple #1
0
'''
27. 内部リンクの除去
26の処理に加えて,テンプレートの値からMediaWikiの内部リンクマークアップを除去し,テキストに変換せよ(参考: マークアップ早見表).
'''
from chr3 import ARTICLE_UK, re
regex1 = re.compile(r'^\|(.+?)\s=\s(.+?)$', re.MULTILINE)
regex2 = re.compile(r'\'{3}')
regex3 = re.compile(r'\[\[(.*?)\]\]')
uk_dict = {}
for i in regex1.findall(ARTICLE_UK()):
    prepare = regex2.sub("", i[1])
    prepare = regex3.sub(r'\1', prepare)
    uk_dict[i[0]] = prepare
print(uk_dict)
Exemple #2
0
'''
22. カテゴリ名の抽出
記事のカテゴリ名を(行単位ではなく名前で)抽出せよ.
'''
from chr3 import ARTICLE_UK, re
article_UK = ARTICLE_UK().split('\n')
regex = re.compile(r'\[\[Category:(.+?)(\]\]|\|\*\]\])')
for lines in article_UK:
    result = regex.search(lines)
    if result:
        print(result.group(1))

#どっちでもできる
regex = re.compile(r'^\[\[Category:(.+?)(\]\]|\|\*\]\])$', re.MULTILINE)
for lines in regex.findall(ARTICLE_UK()):
    print(lines[0])
Exemple #3
0
'''
21. カテゴリ名を含む行を抽出
記事中でカテゴリ名を宣言している行を抽出せよ.
'''
from chr3 import ARTICLE_UK, re
article_UK = ARTICLE_UK().split('\n')
for lines in article_UK:
    if 'Category' in lines:
        print(lines)

#行だから上で良さそうだけど[]無しも一応。
regex = re.compile(r'\[\[(Category.*?)(\||])')
for lines in article_UK:
    result = regex.search(lines)
    if result:
        print(result.group(1))
Exemple #4
0
'''
25. テンプレートの抽出
記事中に含まれる「基礎情報」テンプレートのフィールド名と値を抽出し,辞書オブジェクトとして格納せよ.
'''
from chr3 import ARTICLE_UK, re

regex = re.compile(r'^\|(.+?)\s=\s(.+?)$', re.MULTILINE)
print({i[0]: i[1] for i in regex.findall(ARTICLE_UK())})
Exemple #5
0
'''
29. 国旗画像のURLを取得する
テンプレートの内容を利用し,国旗画像のURLを取得せよ.(ヒント: MediaWiki APIのimageinfoを呼び出して,ファイル参照をURLに変換すればよい)
'''
from chr3 import ARTICLE_UK, re, json
import requests
regex = re.compile(r'^\|(.+?)\s=\s(.+?)$', re.MULTILINE)
uk_dict = {i[0]: i[1] for i in regex.findall(ARTICLE_UK())}
flag = uk_dict['国旗画像']
print(flag)
URL = "https://en.wikipedia.org/w/api.php"
S = requests.Session()
PARAMS = {
    "action": "query",
    "format": "json",
    "prop": "imageinfo",
    "titles": "File:" + flag,
    "iiprop": "url"
}
R = S.get(url=URL, params=PARAMS)
DATA = R.json()
print(DATA['query']['pages']['23473560']['imageinfo'][0]['url'])