CoderCastrov logo
CoderCastrov
Парсер

Парсинг данных вашего интернет-банкинга для использования в Google Sheets

Парсинг данных вашего интернет-банкинга для использования в Google Sheets
просмотров
5 мин чтение
#Парсер

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

Вы ведете бюджетирование вне интернет-банкинга и хотите, чтобы ваши остатки и транзакции автоматически попадали в Google Sheets? Продолжайте чтение...

Шаги:

Предварительные требования:

  • Ваш банк не предоставляет API для получения этой информации:

Если ваш банк предлагает API для этой информации, рассмотрите возможность использования его вместо Selenium.

  • Я пользуюсь банком ASB в Новой Зеландии - это руководство будет написано в этом контексте. ОДНАКО, следуя нижеуказанному руководству, вы сможете получить эту информацию из ЛЮБОГО банка.
  • Вам понадобится установленный и работающий Python, а также установленный Selenium. Это руководство написано с учетом использования Windows - вам может потребоваться изменить некоторые части этого руководства для адаптации к другим операционным системам.
  • Это может нарушать условия использования вашего банка.

Давайте начнем.

Шаг 1 — Установка Python и Selenium

Скачайте и установите Python. После установки выполните следующую команду в командной строке Python, командной строке Windows или в терминале вашего редактора:

  • pip install selenium dotenv gspread oath2client

Эти библиотеки необходимы для выполнения следующих шагов.


Шаг 2 — Парсинг с использованием Python и Selenium

Я выбрал Python, так как это самый распространенный и простой язык сценариев для данного случая использования. Я выбрал Selenium, так как это инструмент автоматизации тестирования и предоставляет самый простой способ визуального парсинга данных. Google Sheets (где мы будем размещать данные) имеет возможность парсить данные с веб-страниц, но не за экраном входа в систему.

Прежде чем начать (на самом деле), создайте папку с файлом .env и файлом main.py. Файл .env будет служить хранилищем ваших учетных данных для входа (хорошая привычка), а файл main.py будет содержать весь код.

Вставьте следующий код в main.py:

Пояснение к вышеприведенному коду:

  • мы импортируем 'os', чтобы использовать и загружать переменные среды.
  • мы импортируем функции 'selenium' для автоматизации входа в банковское приложение.
  • мы импортируем 'dotenv' для получения учетных данных для входа из ранее созданного файла .env.

Затем мы хотим определить наш драйвер Selenium:

geckodriver - это движок, предоставляемый Firefox для использования с Selenium. Вы также можете использовать chromedriver, предоставляемый Chrome. Определяемая переменная driver - это браузер, который будет действовать как пользователь, входящий в банковское приложение. Он должен ссылаться на geckodriver.

Затем загрузите свои данные для входа из файла .env:

Теперь перейдем к фактическому автоматическому входу в банковское приложение:

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

На этом этапе вы можете запустить файл main.py, и если все настроено правильно, у вас должно открыться новое автоматическое окно браузера на указанной вами странице.

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

Теперь вам просто нужно найти поля ввода для ваших учетных данных и нажать 'вход':

функция _.find_element_by_xpath _позволяет идентифицировать точное поле ввода, которое вам нужно. Простой способ получить XPath элемента на веб-странице - это:

Это выведет XPath для поля входа. В этом случае: '//*[@id="dUsername"]'

Автоматизация заключается в получении необходимых элементов и предоставлении им необходимых данных. Затем мы нажимаем кнопку входа.

Повторное выполнение main.py должно привести к успешному входу в систему.

Далее вы хотите сделать то же самое, что и выше, в терминах использования XPath элементов для получения их значений. В моем случае, чтобы получить текстовое значение баланса моего основного счета, я буду использовать это:

Причина удаления символа '$' заключается в том, чтобы сделать это значение пригодным для использования в Excel в качестве числа.

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


Шаг 3 — Отправка собранных данных в Google Sheets

Этот процесс довольно сложен, так как для отправки данных в Google Sheets требуется создать разрешение в Google API Console. Самый простой способ сделать это - следовать инструкциям в документации gspread. В результате вы получите учетную запись службы, которая будет действовать как бот. Не забудьте предоставить адрес электронной почты, найденный в разрешениях client_secret, права на редактирование таблицы, которую вы хотите изменить. Затем просто используйте следующий код:

secret_path - это место, где я храню файл с клиентским секретом, сгенерированным с помощью вышеуказанных инструкций. "Финансы 2020" - это название моей таблицы бюджетирования. В примере я просто отправляю 4 баланса. Это может быть таким простым или сложным, как вам нужно.

Теперь запустите main.py, и вы, надеюсь, увидите нужную вам информацию в вашей таблице Google!

Последние шаги - это упорядочить код. Один из вариантов - предотвратить отображение окна Firefox, в режиме, который Selenium называет «без головы». Я обновил предыдущие определения для движка Firefox следующим образом:

Шаг 4 — Автоматизация в Windows

Поскольку я регулярно проверяю свой бюджет, я запланирую выполнение этого парсера раз в день. Для этого мы воспользуемся Планировщиком задач Windows.

Вам нужно создать файл .bat, который запускает python-скрипт. Это связано с тем, что Планировщик задач Windows не запускает файлы python напрямую. Пример простого файла .bat может выглядеть так:

My run.bat within the project. Obviously replace [you] with your name to get your python install

Вы можете протестировать его, запустив файл .bat. Если все правильно, откроется окно командной строки, и ваш скрипт main.py будет запущен.

Затем в Планировщике задач Windows:

  • нажмите «Создать простую задачу...».
  • дайте вашей запланированной задаче имя
  • выберите триггер. Я установил его на выполнение в 19:00 каждый день.
  • Для действия выберите «Запустить программу» и выберите файл .bat, который мы только что создали.

Теперь вы должны увидеть свою запланированную задачу в «Библиотеке Планировщика задач».


Заключение:

В этом руководстве описано, как:

  • Парсить данные с защищенной страницы входа
  • Отправлять их в Google Sheets
  • Автоматизировать этот процесс парсинга

Если у вас возникнут вопросы, не стесняйтесь задавать их в комментариях. Надеюсь, вам понравилось это руководство!