我有一个以物种名称(e.x. Fusulinida)传递的命令行程序。它需要返回关于分类标准的侧栏部分的明文。
但似乎没有办法将其变成明文。我正在使用python requests。
答案 0 :(得分:2)
我希望这会有所帮助:
import requests, json
def getTaxonomy(title):
r = requests.get('https://en.wikipedia.org/w/api.php?action=query&titles=' + title + '&prop=revisions&rvprop=content&rvsection=0&format=json')
#https://en.wikipedia.org/wiki/Special:ApiSandbox#action=query&prop=revisions&format=json&rvprop=content&rvsection=0&rvcontentformat=text%2Fx-wiki&titles=Foraminifera
a = ''
t = json.loads(r.text)
for i in t['query']['pages']:
a = t['query']['pages'][ i ]['revisions'][0]['*']
taxobox = axobox = a[a.upper().index('{{TAXOBOX') + len('{{taxobox'):]
taxobox = taxobox[taxobox.index("\n[["):]
taxobox = taxobox[:taxobox.index("}}")]
taxobox = taxobox.replace('[[','')
taxobox = taxobox.replace(']]','')
taxobox = taxobox.replace('<br>','')
taxobox = taxobox.replace("''",'')
taxobox = taxobox.replace(" ",' ')
t = []
for i in taxobox.split("\n"):
if len(i) > 0:
if '|' in i: # for href titles
t.append( i.split('|')[1] ) # for href titles
else:
t.append( i )
return "\n".join(t)
print(getTaxonomy('Foraminifera'))
print(getTaxonomy('Fusulinida'))