Surveillance de disponibilité de siteDéveloppement et personnalisation

Un script Python qui vérifie que votre site répond et vous envoie un e-mail depuis votre propre boîte quand il tombe

Généralement prêt en 15 minutesRetouches inclusesContrôle qualité
Formules
Paiement protégéEn savoir plus
  • Les retouches prévues par la formule sont gratuites.
  • Sans réponse de votre part dans les 3 jours suivant la livraison, le travail est validé automatiquement.

L’argent est réservé au paiement et versé uniquement une fois le travail validé.

Un script Python qui vérifie que votre site répond et vous envoie un e-mail depuis votre propre boîte quand il tombe

Exemple de résultat

Exemple pour la formule Standard

Fusion des fichiers de ventes mensuels de 9 boutiques en un seul rapport Excel

Comment on le lance

python merge_sales.py --month 2026-10
2026-11-02 09:14:03 INFO  Dossier : sales/2026-10, 9 fichiers trouvés
2026-11-02 09:14:03 INFO  shop-01.csv : 1 284 lignes
2026-11-02 09:14:04 INFO  shop-02.xlsx : 967 lignes
2026-11-02 09:14:04 WARN  shop-07.csv : 3 lignes sans prix ignorées (lignes 88, 412, 913)
2026-11-02 09:14:05 INFO  Terminé : 10 412 lignes -> report-2026-10.xlsx (feuilles « Ventes » et « Totaux »)

Des paramètres, pas du code

Les noms de colonnes de chaque boutique se trouvent dans settings.ini : une nouvelle boutique ou une colonne renommée, c’est une ligne à modifier :

[columns]
date = Date, Date de vente, Jour
product = Produit, Article, Désignation
quantity = Qté, Quantité, Pièces
price = Prix, Prix unitaire

Un extrait du code

def read_shop_file(path: Path, columns: dict[str, list[str]]) -> pd.DataFrame:
    """Lit le fichier d’une boutique et lui donne les noms de colonnes du rapport."""
    table = pd.read_excel(path) if path.suffix == ".xlsx" else pd.read_csv(path, encoding="utf-8-sig")
    renamed = {}
    for name, variants in columns.items():
        found = next((c for c in table.columns if c.strip() in variants), None)
        if found is None:
            raise ReportError(f"{path.name} : aucune colonne pour '{name}' (recherché : {', '.join(variants)})")
        renamed[found] = name
    table = table.rename(columns=renamed)[list(columns)]
    table["shop"] = path.stem
    return table

Fichiers : une archive ZIP avec merge_sales.py (310 lignes), settings.ini, requirements.txt et un README qui explique comment installer Python, lancer le script et ce que signifie chaque message du journal. Le client le lance sur son propre ordinateur.

Client : une petite chaîne de 9 papeteries ; chaque boutique envoie ses ventes du mois en fichier CSV ou Excel, avec des noms de colonnes légèrement différents. Tâche : un seul script qui lit chaque fichier d’un dossier, met les colonnes au même format et écrit un rapport Excel unique avec toutes les ventes et une feuille de totaux par boutique.

Le client et tous les détails sont fictifs.

À propos de ce service

Si votre boutique ou votre site de réservation tombe en pleine nuit, vous ne l’apprendrez peut-être que le matin, par un client. Ce script Python ouvre les pages que vous listez toutes les quelques minutes et vous envoie un e-mail quand l’une d’elles ne répond plus, renvoie une erreur ou, dès Standard, se charge sans un mot qui doit s’y trouver, comme votre bouton « Ajouter au panier ». Il réessaie avant de donner l’alerte, pour qu’une seule réponse lente ne vous réveille pas, et vous écrit à nouveau quand le site revient. Les e-mails partent de votre propre compte de messagerie ; vous saisissez vous-même son mot de passe d’envoi dans les paramètres. Lancez-le sur un ordinateur ou un serveur qui reste allumé et qui n’héberge pas votre site, sinon il se tait en même temps que le site. Il vous signale un problème ; il ne le corrige pas.

Ce qui est inclus

  • Ce que vous recevezUne archive ZIP avec le script Python, un README avec des instructions pas à pas et, dès Standard, un fichier de paramètres avec les adresses et les réglages de messagerie ; le code est aussi affiché sur la page de la commande.
  • En panne puis rétabliUn e-mail quand ça tombe, un autre quand ça revient
  • Pas de fausses alertesRéessaie avant de vous écrire
  • Contrôle du contenu de la pageDès Standard, un mot qui doit figurer sur la page
  • Depuis votre boîte mailVotre propre compte de messagerie, mot de passe hors du code
  • Code lisibleAvec des commentaires, pour ajouter facilement une page plus tard

Comment ça marche

  1. 1
    TâcheVous listez les pages à surveiller et la destination des alertes
  2. 2
    CodeNous écrivons le script et le guide pour le lancer
  3. 3
    Testez-leVous le lancez avec une page inexistante pour voir une alerte arriver
  4. 4
    RetouchesVous demandez des retouches selon votre formule et envoyez les éventuels messages d’erreur

Ce dont nous avons besoin

Les adresses à surveiller (page d’accueil, panier, page de réservation), la fréquence de vérification et, dès Standard, un mot ou une phrase que chaque page doit afficher. La destination des alertes et le compte de messagerie qui les envoie (le nom de votre fournisseur suffit pour que nous décrivions ses réglages d’envoi ; vous saisissez vous-même le mot de passe). L’endroit où le script tournera : un ordinateur qui reste allumé, ou un serveur, avec son système (Windows, macOS ou Linux).

Nous vous demanderons :

  • Quelles pages doit-il surveiller ?
  • À quelle fréquence, et qu’est-ce qu’une panne ?
  • Où envoyer les alertes ?
  • Où va-t-il tourner ?

Comparer les formules

FormulesEssentielUn site, une alerte15 €StandardVérifications avec paramètres30 €PremiumOutil de surveillance60 €
Délai1 jour2 jours3 jours
Retouches123
Codejusqu’à 150 lignesjusqu’à 400 lignesjusqu’à 1 000 lignes
Fichiers de code1jusqu’à 3jusqu’à 8
Fichier de paramètresNonOuiOui
Messages d’erreur clairs et journalNonOuiOui
Options de lancement et guide pour l’exécution planifiéeNonNonOui
Guide d’installation et d’utilisation (README)OuiOuiOui
LangagePythonPythonPython
Commander EssentielCommander StandardCommander Premium

Paiement protégé

Vous payez à la commande, mais l’argent n’est versé que pour un travail validé.

  • Prix fixeLe prix de la formule ne change pas après le paiement.
  • L’argent est réservéAu paiement, le montant est seulement réservé. Il n’est versé à Dleex qu’une fois le travail validé.
  • Vérifié avant livraisonChaque résultat passe un contrôle qualité avant de vous parvenir, et vous le voyez sur la page de la commande avant de le valider.
  • Retouches gratuitesDemandez des retouches dans le cadre de votre brief autant de fois que la formule le permet.
  • Validation au bout de 3 joursSi, dans les 3 jours suivant la livraison, vous n’avez ni validé le travail ni demandé de retouches, il est validé automatiquement. Si vous écrivez dans le chat de la commande après la livraison, la commande est mise en attente ; après notre réponse, nous pourrons relancer le délai de 3 jours et vous le signalerons dans le chat.
  • Travail refait ou remboursement intégralSi le résultat ne correspond pas à votre brief et que les retouches n’y ont rien changé, ou si le travail prend plus du double du délai prévu, écrivez dans le chat de la commande : nous referons le travail ou vous rembourserons intégralement.
Comment ça marche →

Questions et réponses

Où dois-je le lancer ?

Sur une machine toujours allumée et distincte de votre site, comme un ordinateur de bureau, un mini-serveur à la maison ou un petit serveur loué. S’il tourne sur le même serveur que le site, il tombe avec lui et ne peut pas vous prévenir.

Peut-il envoyer un SMS au lieu d’un e-mail ?

Cette offre envoie des e-mails. Beaucoup de téléphones peuvent afficher un e-mail comme une alerte ; un message vers un service doté d’une API publique peut être ajouté selon votre formule, avec votre propre clé dans les paramètres.

Va-t-il vérifier la vitesse ou la sécurité de mon site ?

Il mesure le temps de réponse de chaque page et, en Premium, vous avertit au-delà de votre limite. Il ne teste pas la sécurité, ne cherche pas de virus et ne se connecte pas aux pages d’administration.

Combien d’e-mails peut-il envoyer ?

Il n’écrit que lorsque quelque chose change : une fois quand une page tombe et une fois quand elle revient, il reste donc largement sous les limites d’envoi de votre messagerie.

Vous n’avez pas trouvé la réponse ?

Formules