Как получить идентификатор страницы из заголовка страницы Википедии - PullRequest
0 голосов
/ 13 октября 2018

Я пытаюсь найти идентификатор вики списка страниц из википедии.Итак, формат:

input: список заголовков страниц википедии

output: список идентификаторов страниц википедии.

Пока я прошел через Mediawiki API дляпонять, как действовать, но не смог найти правильный способ реализации функции.Кто-нибудь может подсказать, как получить список идентификаторов страниц?

1 Ответ

0 голосов
/ 13 октября 2018

Запрос основной информации о странице:

import requests

page_titles = ['A', 'B', 'C', 'D']
url = (
    'https://en.wikipedia.org/w/api.php'
    '?action=query'
    '&prop=info'
    '&inprop=subjectid'
    '&titles=' + '|'.join(page_titles) +
    '&format=json')
json_response = requests.get(url).json()

title_to_page_id  = {
    page_info['title']: page_id
    for page_id, page_info in json_response['query']['pages'].items()}

print(title_to_page_id)
print([title_to_page_id[title] for title in page_titles])

Это напечатает:

{'A': '290', 'B': '34635826', 'C': '5200013', 'D': '8123'}
['290', '34635826', '5200013', '8123']

Если у вас слишком много заголовков, вам нужно запросить их внесколько запросов, поскольку существует ограничение 50 (500 для ботов) для количества заголовков, которые могут быть запрошены одновременно.

...