Forum Python

 

 

Please or S’enregistrer to create posts and topics.

Automatisations de requêtes sur API/sites de voyage : gestion de la déconnexion en mode nomade

Salut

Je suis en train de finaliser un petit script Python qui tourne en tâche de fond pour scraper et comparer des données de tarifs pour mes déplacements pro. Jusqu'ici tout fonctionne bien sur ma connexion fixe, mais dès que je passe en travail nomade avec du partage de connexion ou une connexion mobile secondaire, mon script plante sur les timeouts et la gestion des sessions.

J'aimerais avoir vos retours ou vos extraits de code pour rendre les requêtes urllib ou requests plus résilientes quand la connexion bascule ou devient instable. Est-ce que vous gérez ça avec des retries automatiques ou plutôt en interceptant les exceptions de type ConnectionError pour faire une pause avant de relancer ? Pour tester mon script en conditions réelles et voir comment il réagit sur de la vraie donnée comparative, j'ai pris comme exemple des plateformes de comparaison de forfaits mobiles et comparatif esimcomparator pas cher pour voir comment le code gère la récupération des tarifs selon les pays. Mais dès que la latence monte, le script décroche.

Si certaines d'entre vous ont déjà codé une gestion propre des reconnexions ou des proxies tournants en Python pour ce genre de cas, je suis vraiment preneuse de vos conseils.

Bonjour,
Pour ce type de problème, je conseille de combiner timeout, gestion des exceptions et retries avec délai progressif. Cela permet au script de patienter lorsque la connexion mobile devient instable, puis de réessayer automatiquement.
Avec requests, vous pouvez par exemple intercepter ConnectionError et Timeout, puis effectuer quelques nouvelles tentatives avec un délai croissant (1 s, 2 s, 4 s...). Pour un projet plus conséquent, HTTPAdapter associé à Retry permet d'automatiser proprement ce mécanisme.
Les proxies tournants ne sont pas vraiment nécessaires pour résoudre un problème de connexion instable et peuvent même ajouter de la latence. Pensez également à respecter les conditions d'utilisation et les limitations du site que vous scrapez.