>_ DevTrendsfr

Langue

Accueil

Langages

Sections

Frontend Backend Mobile DevOps AI / ML GameDev Sécurité
HTML

Comment les développeurs battent les revendeurs de billets avec Python

3 599 étoiles

Avez-vous déjà essayé d'acheter des billets de concert pour un groupe populaire dans les premières minutes de la vente ? En général, cela se passe comme suit : vous actualisez la page à 10h00:00, et à 10h00:01, les billets sont déjà épuisés. En Chine, ce problème est encore plus aigu, ce qui explique pourquoi des projets comme damaihelper y sont nés. Il s'agit d'un système automatisé pour l'achat de billets sur des plateformes comme Damai, Taopiaopiao et Binwandao.

Curieusement, le projet a évolué d'un script rapide et sale à une application à part entière avec une interface web et une IA rudimentaire. Je suis tombé dessus par hasard et j'ai décidé de comprendre comment fonctionne cette « course aux armements » moderne sur le marché des billets.

Pourquoi se donner cette peine s'il existe des applications officielles

Le principal problème des grandes plateformes, ce sont les revendeurs avec leurs fermes de bots. Une personne ordinaire ne peut physiquement pas rivaliser avec la vitesse d'un script. Damaihelper est une tentative de公平的竞争环境 pour ceux qui connaissent Python et Selenium.

Le projet automatise l'ensemble du cycle : de l'authentification et la sélection de la section souhaitée à la résolution des captchas et la création d'une commande. L'auteur affirme que la dernière version avec des « agents » intégrés augmente les chances de succès de près de moitié. Bien sûr, ce sont des chiffres marketing du README, mais les fondations techniques derrière sont solides.

Ce que cette machine est capable de faire

Le développeur Guyungy a bien充实 le capot avec un zoo technologique diversifié. Voici ce qui a retenu mon attention :

  • Support multiplateforme. Le script n'est pas lié à une seule plateforme. Il peut fonctionner avec les principaux agrégateurs de billets en Chine. Et l'architecture est modulaire, donc ajouter un nouveau site n'est qu'une question d'écriture d'un plugin.
  • Contournement de la protection. Au lieu du Selenium standard, l'auteur utilise des méthodes d'automatisation stealth modifiées. Cela aide à tromper les systèmes anti-fraude qui détectent une activité suspecte dans un navigateur régulier contrôlé par WebDriver.
  • Traitement d'images. Les bibliothèques Pillow et pytesseract ne sont pas là pour rien. Elles sont nécessaires pour reconnaître les captchas simples. Pour les cas plus complexes, les dernières mises à jour mentionnent l'utilisation d'algorithmes d'IA.
  • Lancement facile. Si vous deviez auparavant vous battre avec la console, il y a maintenant une GUI en Python et même un panneau web. Vous pouvez lancer un serveur localement et gérer le processus via un navigateur.

Web UI Dashboard

Stack technique et architecture

Le projet est écrit principalement en Python. La version Selenium 4.x est utilisée pour l'automatisation du navigateur. Pour déclencher le script exactement à la seconde où la vente de billets ouvre, APScheduler est utilisé.

La gestion du temps est organisée de manière intéressante. Les configs contiennent des paramètres de synchronisation NTP. Dans la bataille pour les billets, chaque milliseconde compte, et si l'horloge système de votre ordinateur retarde même d'une demi-seconde derrière le serveur de la plateforme, vous avez perdu.

La structure des dossiers semble logique :

  • ticket_script.py — c'est là que réside la logique principale pour interagir avec les sites.
  • GUI.py — l'interface pour ceux qui n'aiment pas le terminal.
  • config/ — le dossier des paramètres où les données du compte et les préférences de placement sont stockées.
  • logs/ — une chose particulièrement importante pour le débogage quand quelque chose se passe mal pendant une libération de billets.

Comment ça marche en pratique

Pour exécuter cette chose, vous aurez besoin de Python 3.8+ et de Google Chrome installé. Le processus est standard : clonez le dépôt, installez les dépendances via pip.

pip install -r requirements.txt

Pour exécuter le scénario principal, utilisez la commande python ticket_script.py. Et si vous voulez une belle interface — python GUI.py.

Web UI Running

Dans l'interface web, vous pouvez tout configurer : du nombre de billets aux noms spécifiques des spectateurs (en Chine, les achats sont souvent liés aux cartes d'identité). Il y a même une option pour utiliser des serveurs proxy afin d'éviter les interdictions d'IP si vous décidez de lancer le script en dix fils.

Cela vaut-il la peine d'essayer

Je serai honnête : le projet est de niche et adapté au marché chinois. Si vous rêvez d'assister à un concert à Beijing — c'est votre meilleur ami. Mais même si ce n'est pas le cas, damaihelper est intéressant comme tutoriel sur la construction de bots complexes avec Selenium.

La journalisation est bien implémentée ici, et il y a des exemples de comment gérer les éléments dynamiques des pages et comment emballer un script complexe dans une enveloppe conviviale pour les utilisateurs réguliers.

Le seul inconvenient est que la documentation est en chinois. Mais le code est suffisamment transparent, et les traducteurs modernes gèrent facilement les commentaires. Sinon, c'est un excellent exemple de comment les passionnés résolvent un problème quotidien avec du code.

La chose principale à retenir est le côté éthique — de tels outils sont destinés à un usage personnel. Les utiliser pour le revente industriel de billets est non seulement discutable d'un point de vue moral, mais peut également entraîner des interdictions de compte. Au final, ce n'est que de la technologie, et comment vous l'utilisez dépend de vous.

Projets similaires