Условие задания

Задание - авторизация и размещение ставок на сайте Бетсити

https://betcityru.com/ru

Гостевой счет g8657706 - 11707844

Написать скрипт, который залогинится на сайте, получит баланс.

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

На вкладке LIVE https://betcityru.com/ru/live В любом событии разместить ставку из диапазона 10-200руб (с точностью до рубля, если сумма ставки превышает текущий баланс - то равную текущему балансу) на победу первой команды (колонка "1"), получить статус размещения, сохранить ID и статус заявки.

Повторить 4 раза (события должны быть разными, суммы ставки - тоже)

Библиотеки:

mechanize - для запросов redis - сохранение данных

Решение и сложности

  1. mechanize сразу отпал, так как он не умеет выполнять JS
  2. на сайте мало хороших элементов, к которым можно привязаться в HTML, пришлось писать сложные xpath запросы
  3. сайт не всегда быстро отвечает и рендерится, пришлось добавить механизм retry
  4. Контент на сайте часто меняется -> retry
  5. browserup-proxy - интересное прокси решение, для того чтобы просматривать внутренности ajax запросов и т.д, но у меня не взлетел, тоесть не показывает, что внутри запроса (оставить на TODO). Возможно, это связано с тем, что запрос шифруется.
  6. ID и статус заявки с JSON ответа вытащить не удалось, соотвественно, всю статистику по опперацию собрать не получилось.