Рубрики
Без рубрики

Бот сообщения, чтобы найти PS5 в продаже

Как и многие потребители, я оказался расстроенным, пытаясь найти PS5 в продаже. Вместо того, чтобы постоянно искать сайты, надеясь найти единицу в продаже, я решил построить бот, чтобы отправить мне текстовое сообщение, когда один из главных ритейлеров есть один в продаже. Помечено Python, Twilio, PS5, соскоб.

Как заядлый геймер, я был привержен приобретению консоли следующего поколения, PS5. Но, как и многие потребители, я оказался расстроенным, пытаясь найти PS5 в продаже.

Walmart казался жизнеспособным вариантом, но его сайт не прогуливался с размещенными временами и проблемами, добавляя элементы в корзину и покупки. Другие розничные продавцы, такие как Amazon, GameStop и Target, не имели рекламированных временем, для которых подразделения будут продаваться.

Вместо бесцельно пытаясь искать этих крупных розничных продавцов, спорадически в течение дня, давайте создадим бот, чтобы сделать это для нас. Мое намерение состоит в том, чтобы использовать Python, Selenium с помощью Chromedriver, Heroku Scheduler и Twilio для отправки моего личного телефона сообщение всякий раз, когда устройство доступно.

  • Питон
  • Портить
  • Селен с хромированным водителем
  • Кабинет
  • Heroku

Я создал репозиторий STUB для этого проекта, который может использовать, учитывая, что они поставляют допустимые ключи в файл окружающей среды: Python-Flask-Heroku-PS5-Notifier Отказ Чтобы развернуть Героку, я рекомендую полет или Rambo Cloning этот репозиторий.

Чтобы загрузить и запустить проект, запустите следующие команды:

git clone https://github.com/DEV3L/python-flask-heroku-ps5-notifier.git
cd python-flask-heroku-ps5-notifier
cp .env.local .env
python3 -m venv python-flask-heroku-ps5-notifier
source python-flask-heroku-ps5-notifier/bin/activate
python setup.py develop
pytest
python app.py runserver

Результат pteest Команда должна привести к прохождению тестов. С Python App.py Runserver Вы должны быть в состоянии посетить http://localhost: 5000 В браузере, чтобы увидеть «Hello, World!» сообщение.

Если вы получили успешный результат на обоих этих командах, поздравляю, вы готовы двигаться вперед! Репозиторий имеет .env В файле .gitignore, пожалуйста, не проверяйте какие-либо секреты в свой собственный государственный репозиторий. Эти секреты будут скрыты и управляться внутри Героку.

Это может быть сложный шаг. Чтобы бегать без головы на Heroku, нам необходимо убедиться, что наша инициализация веб-драйвера Chrome Selenium имеет соответствующие переменные пути. Вот короткое видео Youtube, которое объясняет, что мы пытаемся сделать, Бегущая хромедрист с Python Selenium на Heroku Отказ

На сервере переменные будут описаны видео. Но, чтобы проверить локально, нам нужно убедиться, что Chromedriver_Path и Google_chrome_bin устанавливаются соответствующим образом для ваших уникальных путей машин. Если вы используете Mac, местоположение файла Bin не придется меняться. В проекте есть экземпляр драйвера Chrome для Mac. Установите путь к тому, что это значение для вас.

# Selenium
CHROMEDRIVER_PATH=/Users/dev3l/workspace/python-flask-heroku-ps5-notifier/drivers/chromedriver
GOOGLE_CHROME_BIN=/Applications/Google Chrome.app/Contents/MacOS/Google Chrome
HEADLESS=True
USER_AGENT=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36

User_agent настраивается в случае изменения в будущем для размещения любого обнаружения бота. Кроме того, если вы хотите, чтобы волшебство произошло (не без головы), просто измените значение Без головы до false и браузер будет отображаться. Это помогает с отладкой, когда STROCKING должен измениться.

С вашей виртуальной средой активен, запустите следующую команду:

python scrape_stub.py

Если вы видите сообщение «SELENIUIM с Chrome Confighted», то SELENIUM соответственно настроен для вашего локального компьютера. Давайте перейдем к настройке Twilio.

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

Создайте новый проект, давая ему имя, которое вы хотите. Тогда из Все товары и услуги Меню (… в левом меню во время регистрации), выберите Программируемая обмен сообщениями Отказ Выберите Попробуйте это а также Попробуйте SMS … В этот момент вы должны быть в состоянии приобрести бесплатный номер SMS. Используя UI, убедитесь, что вы можете отправить сообщение на ваш проверенный номер телефона.

После завершения обновите переменные в тестовом проекте к соответствующим значениям:

# Twilio
TWILIO_ACCOUNT_SID=TWILIO_ACCOUNT_SID
TWILIO_AUTH_TOKEN=TWILIO_AUTH_TOKEN
TWILIO_TO=+12316851234
TWILIO_FROM=+15555555555

Учитывая, что вы обновляли эти переменные соответствующим образом, выполните следующую команду, чтобы убедиться, что Twilio настроен соответствующим образом:

python scripts/twillio-message.py

Если вы получили «Привет, мир!» Текстовое сообщение, вы готовы двигаться вперед!

Если у вас уже нет, подпишитесь на бесплатный Heroku учетная запись. Создайте новое приложение и дайте ему имя, мой PS5-уведомления Отказ После создания перейдите на вкладку «Развернуть» и выберите GitHUB в качестве метода развертывания.

Ищите и подключите репозиторий. Обязательно нажмите кнопку, чтобы включить автоматические развертывания. Проект должен автоматически развернуть и быть доступным в вашем <Название проекта> .herokuapp.com Например, моя доступна в https://ps5-notifications.herokuapp.com/

Без какой-либо модификации вы должны быть в состоянии посетить URL-адрес вашего сайта (открыть кнопку приложения в верхней части панели инструментов проекта Heroku). Если это работает для вас, еще раз вы готовы двигаться вперед!

Без каких-либо наборов переменных окружающей среды мы не сможем отправлять сообщения на наш целевой телефон. В рамках приборной панели Heroku для вашего приложения перейдите в Настройки и затем нажмите на Показать конфигурацию vars кнопка. Введите каждый из ваших конкретных четырех пар клавиш для Twilio_account_sid, twilio_auth_token, Twilio_to, Twilio_from Отказ После завершения передирайте свое приложение, перейдем к Развертывание . вкладка и выберите Развертывание филиала от Ручное развертывание раздел.

С этим сделано, вы теперь должны быть вручную отправить себе текстовое сообщение через URL в вашем браузере. <Имя проекта> .herokuapp.com/Twilio отправит по умолчанию «Привет, мир!» Текстовое сообщение, или вы можете добавить сообщение Параметр query String для настройки этого сообщения. Я могу сожалеть о том, чтобы положить это здесь, но вы можете ударить в мой пример на Отправить сообщение Пример ссылки

Если вы получили текстовое сообщение на свой телефон, двигайтесь вперед!

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

После этого вы должны быть в состоянии запустить scrape_stub.py Файл прямо на вашем экземпляре Heroku. Если у вас нет установленных инструментов CLI, это может быть легко проверено через панель инструментов Heroku, нажав на Больше кнопка затем выбирая Запустить консоль Отказ Затем в диалоговом окне отправьте python scrape_stub.py Отказ Если вы получили одно и то же сообщение успеха, что и запустив команду локально, затем поздравляю! У нас есть еще один шаг, чтобы настроить до того, как наш бот готов сообщить нам, когда PS5 находится в продаже.

Последний шаг состоит в том, чтобы подключить код соскабливания экрана, который должен вызывать обычный интервал. Я предположил, что сайты будут легко обойтись с использованием различных методов соскоб, но я обнаружил, что это не легкая задача. Особенно Walmart, кажется, что используя Selenium и Chromium, я иногда мог подделать его, с помощью помощи вручную решать капчу вручную, но он продолжал сбрасывать себя, поэтому он должен быть проверен. К счастью, Amazon, BestBuy и Gamestop не являются сложными.

Чтобы настроить планировщик Heroku, перейдите к Обзор вкладка и выберите Настроить надстройки связь. Поиск Heroku планировщик и выберите Heroku планировщик и примите диалоговое окно, которое возникает. Нажмите на доступные сейчас Heroku планировщик Add-on и нажмите Создать работу кнопка

С нашим ботом развернута и завершена, все осталось сделать, это ждать.

Я получил сообщение от Amazon, что PS5 был для продажи, но он был из вторичного продавца почти в 1800 долларов. Все еще взволнован, чтобы увидеть это работает!

Учитывая наше совершенно бесплатное решение, мы будем уведомлены, если Amazon, Best Buy, Game Stop или Target имеет доступный блок раз в десять минут. В будущем было бы не было бы трудно добавить больше сайтов или даже серии Xbox X.

Оригинал: “https://dev.to/dev3l/message-bot-to-find-a-ps5-on-sale-2n5k”