Programmer un bot

Programmer un bot - Divers - Programmation

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
Reply

Marsh Posté le 05-05-2011 à 13:15:29   

Reply

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 ;)


Message édité par rufo le 05-05-2011 à 13:45:40

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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. :spamafote:
 


---------------
drugs designer
Reply

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+,


---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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.
 
http://www.pixelz.fr/8/1/d/a3a5aa1b0baa50264d8953948fe3c.jpg


Message édité par Amaniak le 05-05-2011 à 15:04:32

---------------
drugs designer
Reply

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+,


Message édité par gilou le 05-05-2011 à 16:07:33

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 05-05-2011 à 16:43:07    

Ok!  [:tante foufoune:1]  
 
Donc le temps que je maitrise le perl ou les scripts php je pourrais trier 3x mes produits manuellement!  :D  
 
Bon j'ai regardé et un collègue devrait pouvoir faire ça pour moi! Je crois que ça ira plus vite!  :o  


---------------
drugs designer
Reply

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 :/

Message cité 2 fois
Message édité par rufo le 05-05-2011 à 17:14:47

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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!  :D  
 
Beaucoup trop à mon gout!  [:faman:1]


---------------
drugs designer
Reply

Marsh Posté le 05-05-2011 à 19:41:31   

Reply

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   :)  :)  :)  :ange:  
 

Reply

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 :D
 
Mais là, il est en contexte entreprise. Donc, le côté fun prime rarement sur l'aspect efficacité :/


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

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+,

Message cité 2 fois
Message édité par gilou le 06-05-2011 à 18:24:52

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

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...

Message cité 1 fois
Message édité par otobox le 06-05-2011 à 20:46:17

---------------
OtObOxBlOg - - - Etre seul à avoir tort  c'est plus difficile, mais c'est bien plus beau que d'avoir raison avec une bande de cons
Reply

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...
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+,


 
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  :pt1cable:  :pt1cable:  
 
 
P.S. pour rufo : il me semblait bien que tu est un/une "véritable"


Message édité par leonhard le 07-05-2011 à 09:49:03
Reply

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 :D


Arf excellent!  [:ddr555]  

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...
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+,


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...


 :D  
 
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.   :o  
 
J'attends de voir ce que ça donne, vous posterai un feed-back.   ;)

Message cité 1 fois
Message édité par Amaniak le 07-05-2011 à 19:55:29

---------------
drugs designer
Reply

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é. :whistle:
A+,


Message édité par gilou le 07-05-2011 à 22:48:32

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --  AngularJS c'est un framework d'engulé!  --
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed