Как создать и использовать Labubu-бота с помощью Python

Комментарии: 0

1.png

Коллекционные фигурки Labubu от Pop Mart стали объектом охоты не только для фанатов арта, но и для реселлеров. Лимитированные дропы распродаются за считанные секунды, а ручной заказ становится практически невозможным. В условиях высокой конкуренции многие пользователи прибегают к автоматизации — используют бот Labubu, способный оформить покупки быстрее, чем это может сделать человек. Рассмотрим, зачем нужны боты, какие задачи решают и что важно учитывать при использовании таких инструментов.

Что такое бот Labubu и зачем он нужен

Бот Labubu — специализированный скрипт или программа, которая автоматически отслеживает появление фигурки в продаже, добавляет ее в корзину и оформляет заказ. Он создается для ускорения процесса покупки и исключения проблем, обусловленных человеческим фактором, например: задержки, ошибки, промедления при оплате.

Ключевые функции таких ботов:

  • Мониторинг наличия на целевых страницах магазинов;
  • Моментальное добавление товара в корзину;
  • Автоматическое оформление заказа с вводом адреса и оплаты;
  • Обход антибот-систем с помощью прокси и ротации IP-адресов.

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

Бот для покупки Labubu используется не только арбитражными и реселлерами, но и коллекционерами, желающими не упустить редкий релиз.

Как использовать бота для Labubu: особенности и ограничения

Применение бота Labubu требует понимания не только его функций, но и ограничений, накладываемых интернет-магазинами. Главная цель такого инструмента — ускорить процесс заказа, обходя ручные действия, однако эффективность напрямую зависит от грамотной настройки и соблюдения ряда технических нюансов.

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

Интернет-магазины активно борются с автоматизацией, используя капчи, проверки поведения на странице, фильтрацию по IP и браузерным отпечаткам. Поэтому важно заранее позаботиться о технической маскировке. Чтобы бот Labubu функционировал стабильно и не попал под блокировку, его необходимо адаптировать к условиям платформы и корректно настроить.

Ключевые аспекты настройки бота

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

  • использование качественных прокси-серверов — для автоматизации оптимальны динамические резидентские или мобильные прокси. Их приоритетность заключается в высоком траст-факторе, ротации и наличии пулов с тысячами уникальных IP-адресов для равномерного распределения запросов к платформе;
  • интеграция антикапча-сервисов — например, 2Captcha, CapMonster;
  • установка задержки между действиями, имитирующие реального пользователя;
  • ограничение числа одновременных потоков.

Помимо технической части, стоит учитывать поведенческие ограничения. Онлайн-магазины могут аннулировать заказ, даже если оплата прошла, в случае обнаружения нестандартной активности. Важно учесть, что сам по себе бот Labubu не гарантирует успех — особенно если дроп длится всего несколько секунд или доступ ограничен географически. Поэтому, рекомендуется заранее протестировать бота на менее загруженных товарах и отслеживать расписание дропов через соцсети, например Telegram или Discord. Также можно использовать актуальные версии скриптов и регулярно адаптировать их под изменения на сайте.

Лучший бот Labubu: как выбрать подходящее решение

Лучший бот labubu — не всегда тот, который является самым быстрым, а тот, который адаптирован под конкретный магазин. Выбор инструмента напрямую зависит от уровня подготовки пользователя. Самописные решения требуют знания технической базы, но порядком гибче. Готовые — проще, но не всегда подходят под конкретную специфику магазина.

Параметр Самописный бот Готовое решение
Настройка Требует специфических навыков Готов к активации
Гибкость Высокая Средняя
Поддержка магазинов Любые (при корректной доработке) Ограничена списком
Обновления Ручные Автоматические

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

Примеры готовых решений для покупки Labubu

Большинство таких инструментов являются платными, имеют поддержку Pop Mart и требуют внимательной настройки. Их применение оправдано, если пользователь не готов писать собственный скрипт, но хочет задействовать автоматизацию без серьезной технической подготовки.

Актуальные решения для покупки Labubu:

  1. NSB Labubu Bot — расширение популярного NikeShoeBot, адаптированное под дропы Pop Mart. Предусмотрена поддержка автоматического оформления заказов и работа с прокси.
  2. Stellar AIO — бот с универсальной архитектурой и модулем под Pop Mart. Подходит для пользователей, которым важна быстрая настройка и совместимость с разными платформами.
  3. The Shit Bot (TSB) — используется для автоматизации покупки лимитированных коллекционных товаров, включая Pop Mart. Имеет базовую поддержку регионов и обход капчи.
  4. Cybersole — один из самых стабильных ботов с широкой поддержкой регионов Pop Mart. Предлагает функции автозаполнения, ротации прокси и расширенную аналитику.
  5. Popmart Accounts — не полноценный бот, а сервис, предлагающий подготовленные аккаунты для Pop Mart. Может использоваться совместно с ботами, чтобы избежать лимитов и банов.
  6. Kodai — продвинутый бот с упором на скорость и скриптовую гибкость, применим при соответствующей настройке под целевой магазин.

Как создать Labubu бот с помощью Python

Этот гайд поможет создать асинхронный Python-бот, который будет мониторить новинки на сайте Pop Mart, искать товары Labubu, добавлять их в корзину, и отправлять сообщения о каждом действии в Discord.

Шаг 1: Подготовка среды

На этом этапе мы установим Python и необходимые библиотеки для автоматизации браузера и отправки сообщений в Discord.

Установка Python:

  1. Скачиваем с https://www.python.org/downloads/.
  2. Во время установки обязательно отмечаем Add to PATH, чтобы Python работал с командной строки.

Создание нового проекта:


mkdir labubu_bot
cd labubu_bot
python -m venv venv
source venv/bin/activate  # Для Linux/macOS. Если Windows - введите: venv\Scripts\activate

Это создаст изолированную среду для удобной работы с зависимостями.

Установка зависимостей:


pip install playwright aiohttp
python -m playwright install

Playwright — для управления браузером, aiohttp — для отправки сообщений в Discord.

Шаг 2: Структура папок

Это схема того, как организовать файлы в проекте. Рекомендуется сохранить названия файлов и разместить содержимое из следующих этапов в соответствующие части этого дерева. Такая организация кода важна для поддержания читабельности, повторного использования и удобного обслуживания проекта в будущем. Структура:


labubu_bot/
├── bot.py               ← Отправка сообщений в Discord
├── scraper.py           ← Скрапинг новинок на Pop Mart
├── config.json          ← Webhook и настройка прокси
└── main.py              ← Основной цикл проверки

Шаг 3: Создание файла config.json

В этом файле мы сохраняем чувствительные данные, чтобы не хардкодить их в коде.


{
  "discord_webhook": "https://discord.com/api/webhooks/ВАШ_ID/ВАШ_ТОКЕН",
  "proxy": {
    "server": "http://proxy.example.com:port",
    "username": "user",
    "password": "pass"
  },
  "active_hours": [10, 11, 12, 13, 14]
}

Пояснение: active_hours — это список часов (по системному времени), в которые бот будет активен.

Как получить собственный Discord Webhook

Для этого нужно:

  1. Войти в Discord.
  2. Открыть сервер.
  3. Сделать правый клик по каналу.
  4. Выбрать пункт «Edit channel».
  5. Перейти на вкладку «Integrations», затем «Webhooks».
  6. Нажать кнопку «Create Webhook», задать имя и скопировать URL.
  7. Вставить этот URL в поле discord_webhook.

2.png

Шаг 4: Создание файла scraper.py

Блок ниже выполняет только скрапинг (сбор товаров). Здесь используется ротация прокси и User-Agent для снижения риска блокировки. По умолчанию бот отслеживает все товары, в названии которых есть слово «Labubu». Если вы хотите фильтровать только определенные модели или релизы — нужно изменить код и задать список точных названий. Например: Labubu Strawberry, Labubu Wizard и т.д.

Обратите внимание: в примере используется небольшой список базовых User-Agent строк. Такие значения могут быть легко распознаны как автоматизированные системы. Рекомендуется расширить список за счет более уникальных вариантов или использовать браузеры с поддержкой fingerprint-эмуляции (например, через Playwright с кастомными настройками или средствами типа puppeteer-extra-stealth).

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


import json
from playwright.async_api import async_playwright
import asyncio
import random

USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/114.0.0.0 Safari/537.36",
    "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 Version/15.1 Safari/605.1.15",
    "Mozilla/5.0 (X11; Linux x86_64) Gecko/20100101 Firefox/113.0"
]

async def scrape_labubu(proxy):
    results = []
    try:
        async with async_playwright() as p:
            browser = await p.chromium.launch(headless=True,
                proxy={"server": proxy["server"]} if proxy else None)

            context = await browser.new_context(
                proxy=proxy if proxy else None,
                user_agent=random.choice(USER_AGENTS)
            )
            page = await context.new_page()
            await page.goto("https://www.popmart.com/us/new-arrivals", timeout=30000)

            cards = await page.query_selector_all("div.index_productCardCalendarContainer__B96oH")
            for card in cards:
                try:
                    await asyncio.sleep(random.uniform(1, 3))  # случайная задержка
                    title_el = await card.query_selector("div.index_title__9DEwH span")
                    title = await title_el.text_content() if title_el else ""
                    if "labubu" not in title.lower(): # Замените это условие, если необходимо отслеживать только конкретные названия (например, 'Labubu Strawberry')
                        continue
                    href = await card.query_selector("a[href^='/us']")
                    url = await href.get_attribute('href')
                    results.append({"title": title, "url": f"https://www.popmart.com{url}"})
                except Exception as inner_err:
                    print(f"❗️ Пропущено картку: {inner_err}")  # Если одна карточка вызывает ошибку, бот ее пропускает и продолжает обработку других
            await browser.close()
    except Exception as e:
        print(f"Scraping error: {e}")

    return results

# ----------- ДОБАВИТЬ В КОРЗИНУ через авторизованную сессию -----------

async def add_to_cart(product_url, storage_file="auth_state.json"):
    try:
        async with async_playwright() as p:
            browser = await p.chromium.launch(headless=False)  # запуск в видимом режиме на случай ошибок
            context = await browser.new_context(storage_state=storage_file)
            page = await context.new_page()
            await page.goto(product_url, timeout=30000)
            await page.wait_for_selector("button[aria-label='Add to bag'], button:has-text('ADD TO BAG'), button[class*='add'], button[class*='buy'], div[class*='btn'][class*='add'], div[class*='btn'][class*='buy'], div[class*='btn'][class*='red']", timeout=10000)
            await page.click("button[aria-label='Add to bag'], button:has-text('ADD TO BAG'), button[class*='add'], button[class*='buy'], div[class*='btn'][class*='add'], div[class*='btn'][class*='buy'], div[class*='btn'][class*='red']"), button[class*='add'], button[class*='buy']")
            await asyncio.sleep(2)
            await browser.close()
            return True
    except Exception as e:
        print(f"❌ Не удалось добавить в корзину: {e}")
        return False

Этот скрипт ищет товар с названием Labubu на странице новинок и возвращает список найденных позиций. Добавлено:

  • поддержка ротации User-Agent;
  • прокси;
  • случайные задержки;
  • обработка ошибок на уровне карты.

Шаг 5: Создание файла bot.py


import aiohttp
import json

async def notify_discord(webhook_url, message):
    async with aiohttp.ClientSession() as session:
        await session.post(webhook_url, json={"content": message})

Эта функция посылает сообщения в Discord-канал через Webhook.

Шаг 6: Создание файла main.py

На этом этапе мы добавляем логику, которая сначала находит товары Labubu, а затем, если нужно, добавляет их в корзину через авторизованную сессию (файл auth_state.json).

Этот файл создается после ручного входа один раз в Pop Mart через Playwright — ниже мы показали, как это сделать.

Блок отвечает за основную логику проверки. В Discord пользователь получит сообщение, если:

  • найден товар;
  • ничего не найдено;
  • произошла ошибка при проверке;
  • запустился цикл;
  • данный момент не входит в список active_hours.

import asyncio
import json
from datetime import datetime
from scraper import scrape_labubu
from bot import notify_discord

with open("config.json", encoding="utf-8") as f:
    config = json.load(f)

proxy = config.get("proxy")
discord_webhook = config["discord_webhook"]
active_hours = config.get("active_hours", list(range(24)))

async def run():
    await notify_discord(discord_webhook, "✅ Бот запущен. Начинаю мониторинг Labubu...")
    while True:
        now = datetime.now().hour
        if now in active_hours:
            await notify_discord(discord_webhook, f"✅ Проверка начата в {now}:00")
            try:
                products = await scrape_labubu(proxy)
                if products:
                    from scraper import add_to_cart
                    for item in products:
                        msg = f"Labubu найден: {item['title']}\n{item['url']}"
                        await notify_discord(discord_webhook, msg)
                        success = await add_to_cart(item['url'])
                        if success:
                            await notify_discord(discord_webhook, "Добавлено в корзину.")
                        else:
                            await notify_discord(discord_webhook, "⚠️ Не удалось добавить в корзину.")
                else:
                    await notify_discord(discord_webhook, "❌ Labubu не найден.")
            except Exception as e:
                await notify_discord(discord_webhook, f"⚠️ Ошибка: {e}")
                else:
            await notify_discord(discord_webhook, f"{now}:00 -- Время вне active_hours. Бот спит.")

        await asyncio.sleep(60)  # проверка каждую минуту

if __name__ == '__main__':
    asyncio.run(run())

Примечание: цикл проверяет сайт каждую минуту, но только в те часы, которые указаны в active_hours.

Дополнительно: Как сохранить авторизованную сессию (auth_state.json)

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

  1. Запустите ручной логин через Playwright.
    
    from playwright.sync_api import sync_playwright
    
    with sync_playwright() as p:
        browser = p.chromium.launch(headless=False)
        context = browser.new_context()
        page = context.new_page()
        page.goto("https://www.popmart.com/us/login")
        print("Войди в аккаунт вручную...")
        input("Нажми Enter после входа...")
        context.storage_state(path="auth_state.json")
        browser.close()
    
  2. Это откроет браузер, в котором вы войдете в свой аккаунт Pop Mart. Выполняйте все действия медленно, чтобы ресурс не зафиксировал подозрительную активность и не выдал капчу в будущем, когда бот будет использовать эту сессию для добавления товара в корзину.
  3. После авторизации и нажатия Enter сессия сохранится в файле auth_state.json.
  4. Не удаляйте этот файл. Бот будет использовать его в add_to_cart(), чтобы быть залогиненым от вашего имени.

Иначе сайт Pop Mart может распознать деятельность бота и выбросить из сессии или проигнорировать действие добавления в корзину.

Шаг 7: Запуск

Эта команда запустит цикл проверки.


python main.py

Готово!

С момента, когда найден нужный товар, бот переходит в авторизованную сессию. Именно через нее он открывает страницу и нажимает кнопку "ADD TO BAG". Это означает, что все действия после скрейпинга происходят через сохраненную сессию Pop Mart. Дальше пользователь может просто зайти в свой аккаунт вручную и завершить покупку — товар уже будет в корзине. Такой способ является более надежным и простым, поскольку при ручной оплате меньше риск, что она будет неудачной.

Рекомендуем также ознакомиться с материалом по исправлению синтаксических ошибок в Python.

Когда ждать дропы: ориентировочные часы релизов Labubu

Дропы Labubu случаются в разных регионах в разное время. На основе пользовательских наблюдений в Reddit и Telegram можно выделить примерное расписание:

Регион Примерное время дропа
США (PT) 19:00–22:00
Европа (CET) 04:00–07:00
Азия (HKT/SGT) 10:00–13:00

Это неофициальные данные, но они помогают ориентироваться. Часто дропы совпадают с выходными, праздниками или крупными маркетинговыми кампаниями Pop Mart.

Советы для отслеживания:

  • Подписка на Push-уведомления магазинов;
  • Мониторинг Twitter-аккаунтов Pop Mart;
  • Отслеживание Reddit-ветви: r/vinyltoys, r/popmart;
  • Использование Discord-ботов и Telegram-каналов.

Построенный нами бот каждый день просматривает раздел «New Arrivals», благодаря чему можно легко понять, в какие часы чаще всего происходят дропы, опираясь на сообщения, которые он посылает в Discord.

Заключение

Бот Labubu — инструмент, повышающий шансы на покупку коллекционных фигурок. Помимо непосредственного создания решения при помощи Python, бот требует настройки, знания нюансов дропов и понимания рисков. В условиях высокой конкуренции такой подход становится неизбежным — особенно если речь идет о редких релизах игрушек от Pop Mart.

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

Комментарии:

0 комментариев