CoderCastrov logo
CoderCastrov
Парсер

Как ежедневно скрапить сайт в облаке с помощью Selenium от А до Я? (Часть 2/4)

Как ежедневно скрапить сайт в облаке с помощью Selenium от А до Я? (Часть 2/4)
просмотров
3 мин чтение
#Парсер

Предыдущая часть: https://medium.com/@hureauxarnaud/comment-scraper-un-site-quotidiennement-en-cloud-avec-selenium-from-a-to-z-partie-1-4-1337a3c50929

2) Настройка скрипта парсинга на сервере:

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

Вам нужно загрузить скрипт парсинга на Python getPinnacle.py, список инструкций "bash" install_all.sh, который установит все необходимое, и список инструкций start_headless.sh, необходимый для эмуляции экрана на вашем сервере (с использованием программы Xvfb для любопытных).

Все это можно сделать просто с помощью команд wget, которые загрузят файлы непосредственно из репозитория git:

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

Команда 1 -> Установите программу wget, которая позволяет загружать файлы из репозитория git:

sudo apt-get install wget

Команда 2 -> Загрузите файл Python "getPinnacle.py" и предоставьте ему разрешение на выполнение с помощью следующей команды:

wget https://raw.githubusercontent.com/ArnaudHureaux/scraping-with-google-cloud/master/getPinnacle.py && chmod +x getPinnacle.py

Введите "ls", чтобы убедиться, что скрипт Python успешно загружен:

ls

Команда 3 -> Теперь запустите:

wget https://raw.githubusercontent.com/ArnaudHureaux/scraping-with-google-cloud/master/install_all.sh && chmod +x install_all.sh && ./install_all.sh && ./start_headless.sh

(Эта команда выполнит 4 действия:

  • Она загрузит файл install_all.sh на ваш сервер
  • Она предоставит разрешение на выполнение файла install_all.sh
  • Она выполнит файл install_all.sh (файл install_all.sh - это список инструкций "bash", выполнение его передаст эти инструкции вашему серверу. Среди этих инструкций находится загрузка файла start_headless.sh)
  • Она выполнит файл start_headless.sh)

Команда 4 -> Выполните следующую строку:

python3 getPinnacle.py

Теперь посмотрите на ваши файлы с помощью команды ls, и у вас есть файл pi.csv, содержащий все матчи, которые были найдены! Поздравляю, его наличие указывает на успешное выполнение парсинга!

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

Установите crontab, набрав:

sudo apt-get install crontab

Откройте файл выполнения crontab, набрав:

crontab -e

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

Откроется файл, который содержит только комментарии, начинающиеся с #. Вы можете прочитать эти комментарии, чтобы узнать о возможностях crontab. Затем переместитесь вниз документа (перемещение выполняется с помощью стрелок на клавиатуре, мышь здесь не работает!)

Введите следующую строку в конце документа (см. скриншот ниже):

00 08 ***** ***** ***** python3 getPinnacle.py

Теперь сохраните файл, нажав следующие клавиши:

(Ctrl +x) -> y -> Enter

И вот! У вас есть сервер Google Cloud, который парсит сайт Pinnacle.com, преобразует HTML в структурированные данные и загружает эти данные в виде файла pi.csv каждое утро в 8 часов, даже если вы не включены!

Теперь, если вы хотите отправить эти данные в Google Sheet, чтобы сохранить их (что может быть очень полезно для создания большого набора данных/отслеживания изменения значения), я приглашаю вас пройти к части 3 "Бонус 1: экспорт в Google Drive".

Если вы хотите получать уведомление по электронной почте при каждом выполнении вашего кода, перейдите к части 4 "Бонус 2: уведомление по электронной почте при каждом экспорте".

Если вы хотите непосредственно разобраться в коде, чтобы адаптировать его к вашим потребностям (изменить сайт, экспортировать данные по-другому) или просто из любопытства, чтобы понять, как это работает, перейдите непосредственно к части 5 "Понимание кода"!

Ссылка на следующую часть 3/4: https://medium.com/@hureauxarnaud/comment-scraper-un-site-quotidiennement-en-cloud-avec-selenium-from-a-to-z-partie-3-5-93a7b99489db

Не стесняйтесь связаться со мной в LinkedIn, чтобы задать вопросы/познакомиться: www.linkedin.com/in/arnaud-hureaux-895421159