如何通过 API 获取维基百科中表格的章节标题
How to get section heading of tables in wikipedia through API
如何通过 [=26] 获取维基百科上中国君主列表的个别 table 章节标题:Xia dynasty (夏朝) (2070–1600 BC)
、Shang dynasty (商朝) (1600–1046 BC)
、Zhou dynasty (周朝) (1046–256 BC)
等=]?我使用下面的代码连接:
from pprint import pprint
import requests, wikitextparser
r = requests.get(
'https://en.wikipedia.org/w/api.php',
params={
'action': 'query',
'titles': 'List_of_Chinese_monarchs',
'prop': 'revisions',
'rvprop': 'content',
'format': 'json',
}
)
r.raise_for_status()
pages = r.json()['query']['pages']
body = next(iter(pages.values()))['revisions'][0]['*']
doc = wikitextparser.parse(body)
print(f'{len(doc.tables)} tables retrieved')
han = doc.tables[5].data()
doc.tables[6].data()
doc.tables[i].data()
仅 return table 值,没有其 <h2>
部分标题。我希望 API 到 return 我的标题字符串列表对应于 83 tables returned.
原网址:
我不确定你为什么要使用 doc.tables,因为它是你感兴趣的部分。这对我有用:
for i in range(1,94,1):
print(doc.sections[i].title.replace('[[','').replace(']]',''))
虽然我得到了 94 个部分,而不是 83 个部分,但你可以使用 len(doc.sections) 这将包括另见等。必须有一种更优雅的方式来删除维基链接。
如何通过 [=26] 获取维基百科上中国君主列表的个别 table 章节标题:Xia dynasty (夏朝) (2070–1600 BC)
、Shang dynasty (商朝) (1600–1046 BC)
、Zhou dynasty (周朝) (1046–256 BC)
等=]?我使用下面的代码连接:
from pprint import pprint
import requests, wikitextparser
r = requests.get(
'https://en.wikipedia.org/w/api.php',
params={
'action': 'query',
'titles': 'List_of_Chinese_monarchs',
'prop': 'revisions',
'rvprop': 'content',
'format': 'json',
}
)
r.raise_for_status()
pages = r.json()['query']['pages']
body = next(iter(pages.values()))['revisions'][0]['*']
doc = wikitextparser.parse(body)
print(f'{len(doc.tables)} tables retrieved')
han = doc.tables[5].data()
doc.tables[6].data()
doc.tables[i].data()
仅 return table 值,没有其 <h2>
部分标题。我希望 API 到 return 我的标题字符串列表对应于 83 tables returned.
原网址:
我不确定你为什么要使用 doc.tables,因为它是你感兴趣的部分。这对我有用:
for i in range(1,94,1):
print(doc.sections[i].title.replace('[[','').replace(']]',''))
虽然我得到了 94 个部分,而不是 83 个部分,但你可以使用 len(doc.sections) 这将包括另见等。必须有一种更优雅的方式来删除维基链接。