Давайте поговорим об изучении Википедии с помощью Python!

Вы хотите использовать данные из Википедии в своих веб-приложениях? Популярным вариантом для этой цели является MediaWiki API.



Но что, если бы мы могли получить библиотеку Python, обертывающую этот API и упрощающую нам задачу?

Библиотека «Википедия»

wikipedia — это библиотека, которая позволяет нам получать доступ к данным из Википедии и анализировать их с помощью Python.

Монтаж

Библиотеку можно установить в каталог вашего проекта с помощью терминала, как показано ниже:

$ pip install wikipedia 

Затем импортируйте библиотеку в свой проект, как показано ниже:

import wikipedia

Поиск в Википедии

Чтобы выполнить поиск по запросу в Википедии, мы можем использовать метод search.

print(wikipedia.search("India", results = 3, suggestion = False))
#Output: 
['India', 'Demography of India', 'Punjab, India']

Это возвращает результат поиска для запроса India и возвращает 3 результата.

Аргумент suggestion, если установлено значение True, вернет результат запроса вместе с предложением, если оно доступно, в форме кортежа.

print(wikipedia.search("India", results = 3, suggestion = True))
#Output: 
(['India', 'Punjab, India', 'Demography of India'], 'indian')

Резюме статьи в Википедии

Подводя итог статье из Википедии, мы можем использовать метод summary.

print(wikipedia.summary("Python programming"))
#Output:
Python is a high-level, general-purpose programming language. Its design philosophy emphasizes code readability with the use of significant indentation.Python is dynamically-typed and garbage-collected. It supports multiple programming paradigms, including structured (particularly procedural), object-oriented and functional programming. It is often described as a "batteries included" language due to its comprehensive standard library...

Вывод можно изменить с помощью следующих аргументов:

  • sentences — возвращает первое указанное количество предложений
  • char — возвращает первое указанное количество символов
print(wikipedia.summary("Led Zeppelin", sentences=3))
#Output:
Led Zeppelin were an English rock band formed in London in 1968. The group comprised vocalist Robert Plant, guitarist Jimmy Page, bassist/keyboardist John Paul Jones, and drummer John Bonham. With a heavy, guitar-driven sound, they are cited as one of the progenitors of hard rock and heavy metal, although their style drew from a variety of influences, including blues and folk music.

Доступ к страницам Википедии

Чтобы получить доступ к данным с полной страницы Википедии, можно использовать метод page следующим образом.

london_page = wikipedia.page("London")

Это загружает данные страницы Википедии под названием «Лондон» в переменную с именем london_page.

Получите доступ к названию страницы следующим образом:

print(london_page.title)
#Output: London

Получите доступ к содержимому страницы следующим образом:

print(london_page.content)
#Output:
London is the capital and largest city of England and the United Kingdom, with a population of just under 9 million. It stands on the River Thames in south-east England at the head of a 50-mile (80 km) estuary down to the North Sea, and has been a major settlement for two millennia. The City of London, its ancient core and financial centre...

Получите доступ ко всем изображениям, связанным со страницей, следующим образом:

print(london_page.images)
#Output:
'https://upload.wikimedia.org/wikipedia/commons/d/d3/Siege_of_London_%28MS_1168%29.jpg',  'https://upload.wikimedia.org/wikipedia/commons/6/60/St_Pancras_Railway_Station_2012-06-23.jpg',  'https://upload.wikimedia.org/wikipedia/commons/9/90/St_Paul%27s_Cathedral_from_The_south_east.jpg' ...

Распространенное исключение: DisambiguationError

Посмотрите на пример ниже, где кто-то пытается подвести итоги, используя запрос Python:

print(wikipedia.summary("Python", sentences=3))
#Output:
DisambiguationError: "Python" may refer to:  
Pythonidae 
Python (genus) 
Python (mythology) 
Python (programming language) ...

Это вызывает исключение DisambiguationError, поскольку запрос разрешается на странице устранения неоднозначности.

Можно использовать try-except для обработки этого исключения следующим образом:

try:
    print(wikipedia.summary("Python", sentences=3))
except wikipedia.exceptions.DisambiguationError:
    print('DisambiguationError')
#Output: DisambiguationError

Еще одно распространенное исключение: PageError

Это исключение возникает, когда запрос не соответствует ни одной странице в Википедии.

С этим можно справиться следующим образом:

try:
    wikipedia.page("asdflkj")
except wikipedia.exceptions.PageError:
    print("Your query didn't match a page on Wikipedia")

Другие исключения

Все исключения API связаны с модулем thewikipedia.exceptions.

Пожертвование Википедии

И последнее, но самое важное: пожертвуйте Википедии следующим образом, чтобы она оставалась бесплатной и открытой для всех, как всегда!

wikipedia.donate()

Откроется страница пожертвований Викимедиа в вашем любимом браузере.



Это все для этой статьи!

Документацию API, упомянутых в этой статье, можно найти ниже:





Спасибо, что прочитали!