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

Мировомеры имеют самый простой формат данных и обновляются каждые несколько часов ВОЗ. Однако меня раздражала необходимость бродить по всем странам, чтобы найти свою. Чтобы упростить ежедневное обновление статистики по коронавирусу для моей страны, я модифицировал решение Лазара Гуглетаса и добавил автоматизацию электронной почты, чтобы отправлять мне обновления каждые 24 часа.

Давайте посмотрим внимательнее ...

Установка

  1. Извлеките данные из Worldometer с помощью Chromedriver и Selenium.
  2. Выполните поиск в данных и получите статистику по ВАШЕЙ стране.
  3. Настроить и отправить электронное письмо с обобщенными данными
  4. Настройте расписание, которое будет повторяться в любое время

ПРИМЕЧАНИЕ. Это делается в Windows и потребует модификации для Linux и MAC.

1. Извлечение данных из уировометров

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

Загрузите хромированный драйвер и поместите его в C: \ webdrivers. Вам нужно будет добавить эту папку в переменную Windows PATH для правильного доступа. Если вы застряли, следуйте этой инструкции.

Настройте свою среду

В этом примере в качестве IDE я использовал Atom. Он прост в использовании и имеет отличную встроенную библиотеку для установки сторонних надстроек.

Если вы раньше не использовали Atom, не переживайте! Это довольно просто. Первое, что вам нужно сделать, это убедиться, что у вас есть Platformio-Terminal или какой-либо другой вид терминала, доступный для установки зависимых библиотек.

Откройте атом, перейдите к пакетам и установите терминал Platformio:

Создайте папку проекта

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

«coronastats.py»

Проще всего это сделать в Atom, но вы можете сделать это по-своему. Как только вы закончите, давайте перейдем к терминалу.

Доступ к окну терминала

Теперь, когда у вас установлен терминал и папка проекта, откройте терминал, нажав кнопку «плюс» в нижнем левом углу панели.

Откроется встроенная версия Windows Powershell, чтобы вы могли выполнять команды. Теперь мы собираемся установить зависимые библиотеки:

Установка Python

  1. Установите Python - если вы еще этого не сделали, скачайте и следуйте инструкциям по установке. Не забудьте выбрать ДОБАВИТЬ PYTHON В ПУТЬ при установке!
  2. Проверьте, установлен ли python, набрав в окне терминала:

Установка виртуальной среды

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

Введите следующие команды в окно терминала

  1. pip3 установить virtualenv
  2. python -m virtualenv venv
  3. -cd venv
  4. -cd Сценарии
  5. -activate.bat

Вышеупомянутые команды создадут активную виртуальную среду, в которой вы можете поиграть.

Установка Selenium

Selenium будет использоваться для очистки данных с веб-адреса. Библиотека позволяет нам отправлять простые команды Python в браузер для выполнения этих инструкций. Более подробную информацию о библиотеке Selenium можно найти здесь.

В окне консоли введите:

pip3 установить селен

Поздравляем, ваша среда настроена!

Настройка веб-скребка

Откройте свой скрипт coronastats.py и введите следующее:

Эти строки импортируют компоненты библиотеки webdriver, а затем создают драйвер. Затем водитель направляется на веб-сайт Worldometer.

* вы можете выполнить этот скрипт, чтобы проверить, открывает ли он хром и правильно ли указывает на мировые измерители, набрав:

  • python coronastats.py

ПРИМЕЧАНИЕ.У меня несколько раз возникали проблемы с хромированным драйвером, поэтому я принудительно установил диспетчер при первом запуске сценария, если ваш зависает, в консоли установите:

pip3 установить webdriver_manager

Затем измените свой код следующим образом:

Создание таблицы данных

Теперь, когда мы указываем браузеру Chrome на сайт, мы можем создать таблицу данных и загрузить ее в переменную:

# создать таблицу данных

2. Найдите данные и получите статистику по ВАШЕЙ стране.

Теперь нам нужно извлечь нашу выбранную страну из этой таблицы. Сначала создайте переменную страны, затем извлеките строку из таблицы:

Переменную страны можно изменить на любую страну, для которой вы хотите получать обновления. В моем случае я использую UK, а у меня есть еще один для Южной Африки. Обратите внимание, что в названии Южной Африки есть пробел, который позже может вызвать проблемы при сканировании веб-страниц ...

Теперь, когда мы нашли country_element в таблице, мы можем извлечь строку рядом с ним и поместить ее в блоки данных.

Затем создайте блоки данных строки:

ПРИМЕЧАНИЕ: если в переменной страны есть два слова, например «Южная Африка», вам нужно будет увеличить значение данных на 1, чтобы переместить блок на следующий набор символов, чтобы ваш код выглядел следующим образом:

И это все, что касается веб-сканирования! Молодец!

3. Настройте и отправьте электронное письмо с обобщенными данными.

Для автоматизации электронной почты в python есть библиотека под названием «smtplib». Мы будем использовать это, чтобы настроить автоматические электронные письма после завершения веб-поиска.

Начнем с добавления в скрипт библиотеки smtplib и time.

Затем мы создаем функцию для выполнения требуемого smtp и вызова электронной почты:

Не забудьте правильно отформатировать функцию!

Настройка учетной записи электронной почты

Я использовал для этого Google, поэтому создайте учетную запись google / gmail и войдите в нее. Перейдите сюда. Затем перейдите на вкладку безопасности и найдите раздел, который выглядит следующим образом:

Убедитесь, что для параметра установлено значение ВКЛ. Google предупредит вас об этом, но вы умнее, чем они думают, это просто пустая учетная запись, а не ваша настоящая учетная запись электронной почты ПРАВИЛЬНО?!?! Двигаемся дальше…

Вернитесь к своему сценарию и измените следующее:

Замените «[email protected]» на свою новую учетную запись электронной почты, а «password1234» на новый пароль учетной записи электронной почты. Это дает доступ к smtplib для отправки электронных писем через эту учетную запись.

Затем измените эту строку:

Замените «[email protected]» на предпочтительный адрес электронной почты для отправки.

Теперь вам нужно вызвать функцию в коде и заполнить блоки данных по элементам. Используйте следующее:

Теперь выполните сценарий, используя: python coronastats.py

Если все пойдет хорошо, вы получите электронное письмо!

4. Настройте расписание, которое будет повторяться в любое время.

Он основан исключительно на Windows, потому что он использует планировщик задач Windows, который является встроенной функцией, которая поставляется с каждой ОС Windows.

Откройте планировщик задач Windows,

Создайте новую задачу, нажав «Создать задачу…»

Дайте ему имя, я назвал свой «Coronastats», затем перешел на вкладку «Действия».

На вкладке «Действия» нажмите «Создать», и появится всплывающее окно с диалоговым окном «Новое действие». Убедитесь, что ваше действие - «Запустить программу», затем щелкните текстовое поле «Программа / сценарий».

Теперь программа, которую вы хотите запустить, - это PYTHON, а в оболочке PYTHON вы хотите запустить свой сценарий CORONASTATS.PY.

Нам нужно добавить путь PYTHON в текстовое поле Program / script, поэтому нам нужно получить точный путь к python, выполнив следующие действия:

  1. Открыть cmd - терминал командной строки в windows
  2. Введите команду: python -c «import sys; печать (sys.executable) »
  3. Скопируйте строку, созданную под введенной вами командой, это точный путь к вашей установке python.
  4. Вставьте путь в текстовое поле Program / script

Затем нам нужно добавить имя сценария ‘coronastats.py’ в текстовое поле Добавить аргументы и путь к файлу в начало в текстовом поле следующим образом:

После того как вы добавили путь к Python, имя файла и его расположение в соответствующие текстовые поля, нажмите ОК .

Перейдите на вкладку «Триггеры» в верхней части диалогового окна «Создать задачу» и добавьте новый триггер. Я создал ежедневный триггер примерно в 13:30 каждый день.

ПРИМЕЧАНИЕ. Если вы застряли, есть несколько ресурсов и замечательных статей, которые помогут вам здесь, а также короткое видео-руководство, объясняющее это здесь.

После того, как вы создали требуемую задачу, остается сделать только одно!

Последняя строка кода

Осталось добавить только одну строчку, чтобы полностью автоматизировать работу с веб-браузером! Вы создали драйвер, отправили его на очистку, и он ждет, пока вы ему скажете, что делать дальше, поэтому ЗАКРЫТЬ!

Вот и все! Вы должны начать получать электронные письма автоматически через определенные промежутки времени для ВАШЕЙ страны! Отличная работа!

Если это вам помогло или показало что-то интересное…

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

Спасибо, что прочитали, и вымойте руки!