Projet open source
hangone/WeBan avatar
hangone/WeBan

WeBan : automatiser les micro-cours de sécurité universitaires sur la plateforme Weiban

Aperçu du projet : Weiban. _WeBan_ Star ddddocr réponse/réponse.json PR 1.

2 091 étoiles98 forksPythonGPL-3.0
GitHub

En bref

De quoi s’agit-il ?
Ce script Python pilote la plateforme chinoise de sécurité Weiban : suivi automatique des micro-cours, examens répondus depuis une banque de questions partagée, reconnaissance des captchas et exécution multi-comptes.
À qui s’adresse-t-il ?
WeBan concerne les étudiants confrontés aux micro-cours obligatoires de la plateforme Weiban qui acceptent de confier leurs identifiants scolaires à un script GPL-3.0 exécuté sur leur propre machine. Il ne concerne pas ceux qui refusent ce partage d'identifiants ou l'automatisation imposée par leur établissement.
Puis-je l’utiliser commercialement ?
Oui, sous conditions. GPL-3.0 est une licence copyleft : si vous distribuez un logiciel qui l’inclut, vous devez publier le code source de ce logiciel sous la même licence. Un usage interne, sans distribution, ne déclenche pas cette obligation.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement Python, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 17 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Ce que fait WeBan sur la plateforme Weiban

WeBan cible la plateforme chinoise de sécurité 微伴 (Weiban), utilisée par les universités pour les micro-cours d'éducation à la sécurité. Le script couvre les deux corvées du dispositif : le suivi des cours et les examens. Pour l'apprentissage, il parcourt automatiquement la hiérarchie projet, catégorie puis cours, simule les tours de page, répond aux questions intermédiaires et attend la durée d'étude exigée avant de valider le cours. Les cours et les examens alternent par projet.

Les examens se répondent depuis une banque de questions : le script traite les questions à choix unique et à choix multiples, et pour une question absente de la banque, il répond au hasard ou laisse la main à une saisie manuelle. Le mode perfection vise les 100 points : si une session n'atteint pas la note maximale, l'examen peut être repassé en reprenant là où il s'était arrêté.

Captchas reconnus et serveurs à 1 Go de RAM

Deux types de captchas se traitent automatiquement. Le captcha à curseur de la connexion est résolu sans intervention, et le captcha à sélection d'images des cours passe par OpenCV avec deux manches de trois tentatives avant de basculer en saisie manuelle. Ce détail change l'usage réel : l'outil fonctionne sans navigateur visible sous surveillance.

Le README documente aussi un effort de compatibilité rare : numpy 1.26 et OpenCV 4.10 sont figés pour rester compatibles avec les CPU virtuels QEMU dépourvus d'AVX2, si bien qu'un petit serveur cloud à un cœur et 1 Go de RAM suffit. Le mode sans interaction se déclenche automatiquement sous Docker, cron ou tout environnement sans TTY, avec un répertoire de données à persister.

La banque de questions comme cœur communautaire

Le dispositif le plus intéressant du projet est collectif. Avant et après chaque exécution, le script fusionne la banque locale avec celle du serveur, et les utilisateurs partagent ainsi les questions et leurs réponses. Le fichier answer/answer.json du dépôt sert de banque de référence, et le README invite explicitement à proposer des ajouts par pull request pour l'enrichir.

Chaque examen met à jour la banque avec les questions rencontrées, ce qui améliore les sessions suivantes, pour soi comme pour les autres. Cette boucle explique en partie la popularité du dépôt, 1 782 étoiles pour 86 forks : la valeur ne vient pas seulement du code, mais de l'accumulation de questions réelles collectées par les utilisateurs.

Installation en binaire : cinq cibles, trois étapes

Le README vise explicitement les débutants avec un parcours en trois étapes : télécharger le binaire de la dernière release, le lancer, saisir école, numéro d'étudiant et mot de passe. Aucun Python à installer. Les cibles couvrent Windows x64, macOS Intel, macOS Apple Silicon M1 à M4, Linux x64 et Linux ARM64, y compris Raspberry Pi et serveurs ARM, avec un miroir gh-proxy.com pour les téléchargements lents.

Les obstacles classiques sont anticipés : sous Windows, SmartScreen peut bloquer le premier lancement, avec la marche à suivre décrite ; sous macOS, le README donne les commandes chmod +x et xattr -cr avant l'exécution, et prévient que la vérification de signature d'Apple peut faire patienter. Au premier lancement, le programme demande les identifiants, les vérifie en se connectant, puis les écrit dans config.toml ; une saisie erronée est rejetée sans écrire le fichier de configuration.

Une configuration à trois noms et une priorité claire

Chaque paramètre existe sous trois identités cohérentes : clé snake_case dans config.toml, option --kebab-case en ligne de commande, variable d'environnement WB_SNAKE_CASE. La priorité est toujours la même : ligne de commande, puis environnement, puis fichier. Cette systématique évite les table de correspondances hasardeuses habituelles aux outils de ce type.

Les réglages couvrent les comportements sensibles : study_mode et exam_mode acceptent false, true, force, et le mode perfect pour la note maximale ; study_time règle la durée d'étude par cours sous forme de couple base et aléa, par exemple 20,5 secondes ; exam_submit_match_rate fixe le taux de correspondance minimal à la banque avant d'autoriser la remise d'une copie ; video_speed gère l'attente des vidéos ; max_workers borne la concurrence multi-comptes. Les options browser_path, cdp_host et cdp_port pilotent un navigateur via CDP, et jupiter_fallback complète les parcours de cours qui ne chargent pas apicenext.js.

Rythme de releases soutenu et limites assumées

L'activité est dense : v3.9.9 et v3.10.0 sortent les 19 août 2026, v3.10.1 le 21 août, jour du dernier push. Ce rythme traduit une course permanente face aux évolutions de la plateforme cible, qui durcit régulièrement ses captchas et ses parcours. Une progression non mise à jour après completion déclenche d'ailleurs un avertissement automatique du script.

Les limites restent celles du genre. L'outil réclame vos identifiants scolaires complets, école, numéro d'étudiant, mot de passe, et agit sous votre compte sur une plateforme réglementée par votre établissement ; la licence GPL-3.0 encadre le code, pas l'usage. Le mode debug, qui journalise requêtes et réponses complètes, sert précisément à vérifier ce que le script envoie avant de lui confier une session entière.

Conclusion éditoriale

WeBan concerne les étudiants confrontés aux micro-cours obligatoires de la plateforme Weiban qui acceptent de confier leurs identifiants scolaires à un script GPL-3.0 exécuté sur leur propre machine. Il ne concerne pas ceux qui refusent ce partage d'identifiants ou l'automatisation imposée par leur établissement. Avant un usage complet, lancez le binaire une première fois avec les réglages par défaut sur un seul cours, vérifiez que config.toml a été écrit correctement, puis contrôlez dans l'interface de la plateforme que la progression a réellement été enregistrée.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté