CoderCastrov logo
CoderCastrov
Коронавирус

Парсинг данных о коронавирусе на Worldometers с использованием Python.

Парсинг данных о коронавирусе на Worldometers с использованием Python.
просмотров
3 мин чтение
#Коронавирус
Table Of Content

    Сайт worldometers.info предоставляет данные о случаях коронавируса по всему миру. В этом примере мы будем использовать язык программирования Python для извлечения данных с вводом от пользователя, который будет состоять из названия страны, и выводом будет общее количество случаев, смертей и выздоровевших.

    На картинке выше представлены данные о случаях коронавируса в Индонезии. С помощью Python мы попробуем получить вывод случаи коронавируса, смерти и выздоровления. Сначала нам нужно импортировать модули, которые мы будем использовать, а именно Requests и BeautifulSoup.

    Затем нам понадобится переменная, которая будет содержать строку с названием страны, данные о которой мы хотим получить.

    После того, как пользователь вводит название страны, нам нужна переменная, которая будет запрашивать данные на странице страны, которую мы выбрали, по адресу "https://www.worldometers.info/coronavirus/country".

    Давайте назовем эту переменную "page", затем нам понадобится функция, в которой модуль BeautifulSoup получает данные парсера страницы, на которую мы ссылаемся. Мы сохраняем эту функцию в переменной "result".

    На картинке выше показан пример после выполнения кода и ввода названия страны Индонезия. Конечно, нам нужен особый тег, который мы можем использовать для извлечения данных о случаях коронавируса, смертей и выздоровления, как мы и ожидали ранее.

    Попробуйте проинспектировать элементы веб-страницы и найти, в каком теге находятся данные, которые мы хотим извлечь.

    Мы видим, что "Recovered и его значение" находятся в теге span, что также верно и для "Coronavirus Cases и Deaths".

    С помощью BeautifulSoup мы можем найти более конкретную строку или данные, находящиеся внутри тега с помощью функций Find или FindAll.

    Давайте поместим эту функцию в переменную "tag".

    На картинке выше показано, что переменная tag говорит "Найдите все теги span, которые находятся в переменной result". Ранее переменная result была функцией, которая запрашивает парсер с HTML-страницы, на которую мы ссылаемся.

    После выполнения мы получаем список всех тегов span на этой странице. Подсчитав индекс с нуля, мы можем сделать вывод, что "число" случаев коронавируса находится на 4-м месте, число смертей на 5-м месте, а число выздоровевших на 6-м месте.

    После получения индекса, нам просто нужно вызвать эти данные с помощью формата кода tag[x].text, где x - это номер индекса, а .text - это функция, которая запрашивает только текст, слово или строку в парсере HTML. Но помните, что "Индекс Python начинается с 0".

    До сих пор мы почти закончили, но вопрос, который возникает, - что если пользователь вводит неправильное название страны? Ведь с www.worldometers.info мы не можем получить данные?

    Ответ довольно простой, давайте посмотрим на разницу между страницей, которая отображает правильные данные о стране, и страницей с неправильным вводом.

    Обратите внимание, что если мы вводим неправильное название страны, то вывод тега span не отображает данные о случаях коронавируса, смертей и выздоровления.

    С помощью условного оператора if else мы будем использовать одну проверку, которая отличает правильную страницу от неправильной. В качестве проверки я использую строку "Coronavirus", которая находится в теге span с индексом 3.

    Это означает, что страница, на которую мы ссылаемся, считается существующей и содержит данные о вирусе коронавируса, если вывод tag[3].text является строкой "Coronavirus".

    Вот полный код:

    И вот полный простой код, довольно просто, не так ли? :D

    Давайте попробуем выполнить его, введя правильное название страны, например, Индонезия.

    Отлично, мы получили данные.

    Теперь давайте попробуем ввести неправильное название, например, UIN :D.

    И, да, конечно, название страны неправильное, и вывода нет.

    Это все для нашей статьи, с помощью Python и модулей мы наконец можем выполнить парсинг данных о вирусе коронавируса по всем странам мира, при условии, что название страны правильное :D.

    Пожалуйста, перепишите его, если вы хотите использовать или даже изменить и добавить другие функции.

    Спасибо, надеюсь, этот учебник был полезен, и увидимся в следующей статье.