Navigation

    WeWin.RU

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Unread
    • Popular
    • Users
    • Groups

    Как ускорить работу бота ?

    Вопросы и инструкции
    6
    18
    432
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Z
      zevoice last edited by

      Здравствуйте, уважаемые. Я новичок в программировании. Сделал бота на питоне + селениум для мониторинга и покупки онлайн. Но мой бот редко поспевает купить первым.
      В какую сторону смотреть, чтобы ускорить работу бота ? Api в этом онлайн магазине нет. Подкиньте идей.

      1 Reply Last reply Reply Quote 0
      • Lakad Matatag
        Lakad Matatag last edited by

        палочками, его, палочками.

        1 Reply Last reply Reply Quote 0
        • K
          kaer777 last edited by

          Сделай бота на с++ :)

          1 Reply Last reply Reply Quote 1
          • Lakad Matatag
            Lakad Matatag last edited by

            Ассемблер.

            1 Reply Last reply Reply Quote -1
            • DimOK
              DimOK Создатель форума last edited by

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

              Z 1 Reply Last reply Reply Quote 0
              • Z
                zevoice @DimOK last edited by

                @dimok имеется ввиду get и post ? Этот пунктик я записал в задачи, пытаюсь разобраться в этом.

                1 Reply Last reply Reply Quote 0
                • M
                  ma1phoy last edited by

                  разместить на vds сервере, который находится хотя бы в той же стране, что и серваки биржи.

                  1 Reply Last reply Reply Quote 0
                  • DimOK
                    DimOK Создатель форума last edited by

                    Оптимизация размещения сервера должна идти в последнюю очередь, если не закрывать установленное соединение (а вы не хотите закрывать соединения, если вам важна скорость), то разницы практически нет.

                    1 Reply Last reply Reply Quote 0
                    • Z
                      zevoice last edited by

                      Посидел 30 часов без сна, написал бота без веб интерфейса (post, get, ну вы понимаете). В какую еще сторону посмотреть в рамках python для ускорения ? Остаётся только сервер поближе ?

                      DimOK 1 Reply Last reply Reply Quote 0
                      • Z
                        Zion last edited by

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

                        1 Reply Last reply Reply Quote 1
                        • Z
                          Zion last edited by

                          и как бы Selenium для тестов , я брал для бота редис и мониторинг идет из него на фронт

                          1 Reply Last reply Reply Quote 1
                          • Z
                            zevoice last edited by

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

                            1 Reply Last reply Reply Quote 0
                            • Z
                              Zion last edited by

                              глянь еше websocket

                              1 Reply Last reply Reply Quote 1
                              • DimOK
                                DimOK Создатель форума @zevoice last edited by

                                @zevoice У вас преждевременная оптимизация. Сама обработка полученных данных занимает доли секунды и вряд ли является узким местом. Проблемы скорее всего в скорости получения данных - нужно переиспользовать сетевые сокеты, делать запросы напрямую, а не через веб-интерфейс, поставить сервер поближе.

                                Узкое место почти всегда - сетевой стек, вот его и оптимизируйте.

                                Вебсокеты, редис - это всё здорово, но опять же, покупать быстрее не поможет, вряд ли магазины предоставляют данные на вебсокетах или есть существенная задержка из-за работы с базой данных.

                                Ах да, на всякий случай, хотя это и очевидно - ботика надо запускать на VPS у провайдера, ни в коем случае не со своего домашнего компьютера, домашний интернет нынче неплохой, но у хостинг-провайдеров всё равно лучше.

                                1 Reply Last reply Reply Quote 1
                                • Z
                                  zevoice last edited by

                                  Мой конкурент покупает одни и те же товары, иногда он первый, иногда я. Имеет ли смысл запустить несколько копий бота через прокси (и добавить аккаунтов магазина если потребуется) ?

                                  DimOK 1 Reply Last reply Reply Quote 0
                                  • K
                                    kaer777 last edited by

                                    Ну вообще первое что надо сделать - это по каждой покупке логировать время от момента срабатывания триггера до отправки REST запросов, или команд в Селениум, если бот работает на нем. И смотреть в среднем сколько это занимает милисекунд, и пробовать оптимизмровать. Может там действительно код можно улучшить.

                                    1 Reply Last reply Reply Quote 1
                                    • DimOK
                                      DimOK Создатель форума @zevoice last edited by

                                      @zevoice Прокси это сразу минус 0.2-0.4 секунды на установление SSL соединения, если важна скорость, то не вариант.

                                      Технически это как работает: вы заранее открываете сокет, устанавливаете соединение, обмениваетесь сертификатами (0.2-0.3 секунд), дальше сокет остаётся открытым, вы в него шлёте запросы (меньше 0.1 секунды), получаете ответы.

                                      Если будет прокси - то устанавливать соединение придётся на каждый запрос, разница колоссальная.

                                      Z 1 Reply Last reply Reply Quote 1
                                      • Z
                                        zevoice @DimOK last edited by

                                        @dimok Кажется, что я всё понял, осталось допилить код. Спасибо за помощь.

                                        1 Reply Last reply Reply Quote 0
                                        • 1 / 1
                                        • First post
                                          Last post