DONE : script de tracking UPS multithreadé [python] - Python - Programmation
Marsh Posté le 01-04-2007 à 19:42:50
nicolbolas a écrit : il a planté avant d'avoir fini (session ssh qui a deconnecté, il tournait sur un serveur dedié) |
un tit screen et ça serait pas arrivé...
(bon heuu c'est tout ce que j'avais à dire, la prog c'est pas (plus) mon truc )
... ah si un truc, j'oubliais, euuh, selon les termes et conditions du machin d'UPS, t'as le droit d'automatiser des requêtes sur leur interface de suivi ? (J'ai pas lu leur machin mais je pense que ça se résume à "Utilisation personelle uniquement" ou un truc dans le genre)
Marsh Posté le 01-04-2007 à 20:30:18
bon alors pour que ce soit un poil plus propre, j'ai deja mis à jour la construction de la requette HTTP :
Code :
|
edit : petit update
Marsh Posté le 01-04-2007 à 22:22:05
pour le parsing, j'ai trouvé une base sympa :
Code :
|
ça converti des tables HTML en CSV, je devrais pouvoir l'adapter à peu de frais
Marsh Posté le 01-04-2007 à 22:54:50
alors voilà un code clean, pas encore threadé, mais je suis dessus :
Code :
|
Marsh Posté le 02-04-2007 à 00:16:10
bon ben ça, ça m'a pas l'air mal :
Code :
|
edit : rajout de code pour un peu de debug sur stderr
Marsh Posté le 02-04-2007 à 02:32:34
apparament j'ai un probleme de synchro quelque part : certains numeros connus n'aparaissent pas dans la sortie. Je relance un test pour comparer le nombre de retour par rapport au nombre de requettes, mais ça me parait vraiment etrange...
Marsh Posté le 02-04-2007 à 04:30:33
mouarf, c'etait juste trop de threads, le serveur d'UPS etait débordé et a refusé quelques connexions... Ca va mieux avec 10 threads et ça va meme un poil plus vite avec 20 mais avec un peu de perte
Marsh Posté le 01-04-2007 à 18:56:29
Oï !
Pour ceux qui on suivi l'activité de la section achat vente, vous avez surement vu un topic de 200 pages pour al dernière commande groupée d'ecrans Dell.
Comme on ne pouvais pas avoir les numeros de tracking UPS, j'ai fait un script assez bourrin pour alles scanner une plage de numeros de tracking sur le site d'UPS. Voilà ce que ça donne :
Comme il a mis 10h pour scanner à peu près 60k pages de tracking, et qu'il a planté avant d'avoir fini (session ssh qui a deconnecté, il tournait sur un serveur dedié), je voudrais le refaire de façon optimisée, parceque c'est vraiment pas le cas actuellement.
Alors si je repartais de la structure actuelle, il faudrait commencer par remplacer les concatennations par des .join(). Eviter de parser avec lynx via subprocess, mais faire un tidy+re (voir re seul). Et surtout multithreader pour ne pas avoir des ouvertures d'URL bloquantes vu la latence moyenne du serveur de tracking.
Je sui vraiment pas doué en code, donc j'en apelle a votre aide au moins pour la partie tidy/re . Par la suite je voudrais exporter les resultats en xml voir csv et faire un petit script qui actualise un compteur (sous forme d'image) pour le nombre de colis en attente de livraison, avec actualisation dans la crontab.
Si ça interesse quelqu'un...
Message édité par nicolbolas le 02-04-2007 à 01:35:32