Programmer un bot - Divers - Programmation
Marsh Posté le 05-05-2011 à 13:44:51
Si vous n'y connaissez rien en programmation, à mon avis, ça ira plus vite de faire la tâche à la main
Si vous voulez vraiment automatiser ça, vu que vous êtes sous Excel, je dirais de faire une macro en VBA Le tout est d'être capable de savoir précisément les phrases ou mots-clés à rechercher, tout en étant tolérant sur les éventuelles fautes de frappe, espaces en trop, minuscules/majuscules, voire de langues différentes (apparemment, y'aurait du français et de l'anglais dans vos produits? Si c'est le cas, là, ça va compliquer la tâche de dév )... Je pense que l'idéale serait que pour chaque produit soit associé les fameux codes Rx et de savoir ensuite quels codes sont interdits pour les femmes enceinte. Comme ça, y'a plus qu'à rechercher les codes concernés dans les produits
Marsh Posté le 05-05-2011 à 14:07:11
J'ai quelques très très légères notions de VBA qui datent de mes études... Par contre je n'ai aucune idée de la commande qui pour une cellule excel donnée irait chercher le produit correspondant sur un site donné et en extrairait l'info souhaitée.
Marsh Posté le 05-05-2011 à 14:37:42
Ce qui n'est pas clair dans ton propos:
Toutes tes données sont homogènes, ou viennent elles de multiples sources avec des documents au formats disparates?
Dans le premier cas, ça devrait pas être trop dur. Dans le second, par contre...
A+,
Marsh Posté le 05-05-2011 à 15:03:29
Effectivement! Tous les produits ne viennent pas nécessairement du même fournisseur. Mais à la limite ce n'est pas très important les codes de sécurité sont censé être les même quelque soit le fournisseur. Donc on pourrait simplifier le truc en le faisant juste chercher tous les produits sur le même site. Au pire il en resterait quelques-uns qu'il ne trouverait pas et qu'on pourrait toujours chercher à la main, si le machin nous mâche déjà le 90% du boulot je serais content!
J'ai fait un petit schéma explicatif qui peut-être est plus clair.
Marsh Posté le 05-05-2011 à 16:04:49
Bon alors le plus simple IMHO:
Faire un programme en perl avec le module LWP qui va recupérer les pages ou sont les infos (facile)
Ca présuppose que ton outil va pas aller scanner toutes les pages du fournisseur néanmoins, mais que tu sais a peu près lesquelles sont celles à aller lire (un bot est faisable, mais c'est un peu plus de boulot)
Dans les pages récupérées, rechercher a coup d'expressions régulières si on trouve R 40/45/46/49/60/61/62/63/64/68
Bon, la ça va être un poil plus sioux, vu que dans les sources, tu as des pages avec des ranges style R 30-35, mais c'est faisable avec un peu de boulot (le mieux, pour chaque page que tu analyse, tu crées un array de valeurs R trouvées, quant tu trouves R 30-35 tu fous 30 31 32 33 34 35 dans l'array et en fin de traitement, tu cherches dans l'array si tu as une des valeurs que tu cherches, ou bien tu sors la liste des valeurs que tu cherches qui y sont trouvées si tu as besoin d'un rapport plus détaillé).
Bref, c'est pas trop dur a faire a priori en perl ou un langage similaire.
A+,
Marsh Posté le 05-05-2011 à 16:07:07
Ah ok, les infos sur les produits sont sur des listes web! Du coup, perso, je partirais sur un script en php avec une lib style "Snoopy" ( http://sourceforge.net/projects/snoopy/ ) qui permet d'extraire facilement du contenu de pages web.
1) fichier excel contenant la liste de produits exporté en csv
2) script php :
- lecture du fichier csv
- boucle sur la liste :
pour chaque produit, aller sur le site du fabriquant et récupérer la page d'info
- parser la page et effectuer le traitement approprié suivant les infos trouvées
- stocker résultat dans variable prévue (un tableau)
-fin boucle
- stocker variable (tableau) contenant le résultat du traitement dans un fichier en csv.
Marsh Posté le 05-05-2011 à 16:43:07
Ok!
Donc le temps que je maitrise le perl ou les scripts php je pourrais trier 3x mes produits manuellement!
Bon j'ai regardé et un collègue devrait pouvoir faire ça pour moi! Je crois que ça ira plus vite!
Marsh Posté le 05-05-2011 à 17:06:45
C'est ce que je te disais dans mon 1er post : quand on sait pas programmer, chercher à automatiser pour "si peu" ne vaut pas le coup. 800 produits, c'est pas tant que ça finalement, à raison de 2-3 mins par produit, ça te prendrait 3 à5j pour faire le boulot. Apprendre le perl ou php + la ou les libs + analyser les pages des sites web des fournisseurs pour savoir quoi parser, ça te prendra plus de temps et, qui plus est, sans garantie d'arriver à tes fins
Marsh Posté le 05-05-2011 à 19:41:31
rufo a écrit : C'est ce que je te disais dans mon 1er post : quand on sait pas programmer, chercher à automatiser pour "si peu" ne vaut pas le coup. 800 produits, c'est pas tant que ça finalement, à raison de 2-3 mins par produit, ça te prendrait 3 à5j pour faire le boulot. Apprendre le perl ou php + la ou les libs + analyser les pages des sites web des fournisseurs pour savoir quoi parser, ça te prendra plus de temps et, qui plus est, sans garantie d'arriver à tes fins |
Oui j'ai tablé sur une semaine de boulot à trier du bordel!
Beaucoup trop à mon gout!
Marsh Posté le 06-05-2011 à 16:04:58
rufo a écrit : C'est ce que je te disais dans mon 1er post : quand on sait pas programmer, chercher à automatiser pour "si peu" ne vaut pas le coup. 800 produits, c'est pas tant que ça finalement, à raison de 2-3 mins par produit, ça te prendrait 3 à5j pour faire le boulot. Apprendre le perl ou php + la ou les libs + analyser les pages des sites web des fournisseurs pour savoir quoi parser, ça te prendra plus de temps et, qui plus est, sans garantie d'arriver à tes fins |
D'un point de vue pragmatique on ne peut que te donner raison, mais tu oublies un peu trop vite le paramètre "fun". Est-ce qu'il ne t'es jamais arrivé de passer 1 jour ou 2 pour écrire un programme pour faire un job que tu aurais fait à la main en 3 ou 4h ? Juste que parce que 4h de tâches répétitives c'est ch.. alors qu'une journée à découvrir un nouvel api, à bricoler des regexp c'est amusant et que le temps passe beaucoup plus vite ?
Tu me déçois
Marsh Posté le 06-05-2011 à 16:24:13
Eh, tu parles à qq qui a développé un samedi après-midi un algo génétique pour trouver toutes les combinaisons de pizzas de la pizzaria à côté de chez moi dont le prix total donne pile-poil le montant de la somme de 2 tickets restos (c'était pour pouvoir les écluser depuis la loi de janvier 2010 qui interdit aux supermarchés de prendre plus de 2 tickets par passage en caisse). Donc tu vois, le côté fun, je connais
Mais là, il est en contexte entreprise. Donc, le côté fun prime rarement sur l'aspect efficacité
Marsh Posté le 06-05-2011 à 18:24:14
Oui, enfin, l'avantage d'écrire un programme, c'est que c'est réutilisable pour le jour ou on lui demandera la même chose pour les contre indications vis a vis des asthmatiques et qu'il a pas envie d'y perdre une semaine à nouveau...
S'il est sous windows
Des modules perl pour lire une feuille excel (en faisant appel a excel à travers OLE) il y a
Des modules pour faire de la récup de pages a travers le web, il y a (LWP..)
Et les expression régulières pour chercher les infos dans la page, c'est un composant du langage
A+,
Marsh Posté le 06-05-2011 à 20:46:01
Putain d'époque qui voit que la santé humaine peut être à la merci d'une procédure informatique, qui plus est développée par un type qui a des souvenirs lointains de la programmation...
Marsh Posté le 06-05-2011 à 21:23:09
gilou a écrit : Oui, enfin, l'avantage d'écrire un programme, c'est que c'est réutilisable pour le jour ou on lui demandera la même chose pour les contre indications vis a vis des asthmatiques et qu'il a pas envie d'y perdre une semaine à nouveau... |
c'est clair que s'il y a une petite chance de devoir réutiliser le code c'est une autre paire de manche... mais bon on pourrait s'amuser à programmer un algo d'optimisation linéaire pour voir quand il est plus rentable de faire un programme que de chercher les infos à la main
P.S. pour rufo : il me semblait bien que tu est un/une "véritable"
Marsh Posté le 07-05-2011 à 19:55:05
rufo a écrit : Eh, tu parles à qq qui a développé un samedi après-midi un algo génétique pour trouver toutes les combinaisons de pizzas de la pizzaria à côté de chez moi dont le prix total donne pile-poil le montant de la somme de 2 tickets restos (c'était pour pouvoir les écluser depuis la loi de janvier 2010 qui interdit aux supermarchés de prendre plus de 2 tickets par passage en caisse). Donc tu vois, le côté fun, je connais |
Arf excellent!
gilou a écrit : Oui, enfin, l'avantage d'écrire un programme, c'est que c'est réutilisable pour le jour ou on lui demandera la même chose pour les contre indications vis a vis des asthmatiques et qu'il a pas envie d'y perdre une semaine à nouveau... |
Ouais c'est clair que si après y a moyen de changer de requêtes ça peut toujours rendre service plus tard.
otobox a écrit : Putain d'époque qui voit que la santé humaine peut être à la merci d'une procédure informatique, qui plus est développée par un type qui a des souvenirs lointains de la programmation... |
En général quand tu bosses dans un labo avec de produits chimiques potentiellement dangereux, tu te renseigne un minimum sur les risques encourus. Surtout si tu es enceinte. Je suis pas particulièrement convaincu de l'utilité réelle d'une telle liste. Et puis bon faire le tri à la main peut tout autant générer des erreurs dans la liste.
Sinon vous cassez pas trop le cul, mon chef a demandé à un de ses pote informaticien de lui bricoler un truc.
J'attends de voir ce que ça donne, vous posterai un feed-back.
Marsh Posté le 07-05-2011 à 22:47:30
Amaniak a écrit : Je suis pas particulièrement convaincu de l'utilité réelle d'une telle liste. |
Ne faire maniper aux nanas enceintes de la boite que ces produits, pour les pousser a poser leur dem, afin de ne pas avoir à leur payer de congé maternité.
A+,
Marsh Posté le 05-05-2011 à 13:15:29
Bonjour,
Bon alors je vous expose mon problème. Dans le cadre de mon travail, nous avons dans notre laboratoire environ 800 produits chimiques différents (listé sous forme de table excel. Dernièrement notre département de sécurité nous a demandé de lister tous les produits pouvant présenter un risque pour les femmes enceintes, on doit donc lister toutes les phrases de risque R de chaque produit et trier celles qui présentent un risque pour les femmes enceintes (une dizaine de phrase R). Ce qui implique de devoir prendre chaque produit de trouver les phrases R correspondantes comme par exemple sur cette page http://www.sigmaaldrich.com/catalo [...] KEY&F=SPEC -> Risk Statements 11-20/21/22-36 voir sur wikipédia http://fr.wikipedia.org/wiki/Acetonitrile puis de retenir et lister tous les produits ayants les R 40/45/46/49/60/61/62/63/64/68 (ce sont les codes pouvant présenter un danger pour les femmes enceintes.
Si je fais ceci à la main ça va me prendre un temps énorme du coup j'ai pensé qu'un petit bot pourrait très facilement et très rapidement se charger de cette tâche. Malheureusement je n'y connais rien ni en bot ni en programmation! Est-ce difficile à programmer? Quel langage serait le mieux et le plus simple? N'y aurait-il pas une application capable de faire cela juste en la configurant?
Message édité par Amaniak le 05-05-2011 à 13:16:34
---------------
drugs designer