Давайте поговорим об изучении Википедии с помощью 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, упомянутых в этой статье, можно найти ниже:
Спасибо, что прочитали!