Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Lre le contenu d'une circulaire qui est sur l'internet

9 réponses
Avatar
Raymond Fournier
Bonjour a tous,
Je cherche à lire le contenu d'une circulaire qui est sur l'internet. C'est
une circulaire d'une épicerie. Le but est de récupérer les items en spécial
et leur prix et les comparé avec ma liste d'épicerie que fabrique mon
programme. On ma déjà proposer d'utiliser le "DOM". J'ai cherché sur
l'internent pour des bouts de code mais aucun me permet de trouver les
valeurs que je recherche.

voici les adresses que j'utilise
http://www.maxi.ca/fr/this_weeks_flyer.asp
http://www.iga.ca/templates/epicerie/circulaire/index.php?lang=fr&pg=01

Ces catalogues on plusieurs page.

Quelqu'un aurait un lien ou un bout de code pour m'aider s.v.p.

Merci Raymond Fournier

9 réponses

Avatar
François Picalausa
On Jun 1, 11:12 pm, Raymond Fournier
wrote:
Bonjour a tous,
Je cherche à lire le contenu d'une circulaire qui est sur l'internet. C 'est
une circulaire d'une épicerie. Le but est de récupérer les items en spécial
et leur prix et les comparé avec ma liste d'épicerie que fabrique mon
programme. On ma déjà proposer d'utiliser le "DOM". J'ai cherché sur
l'internent pour des bouts de code mais aucun me permet de trouver les
valeurs que je recherche.

voici les adresses que j'utilise http://www.maxi.ca/fr/this_weeks_flyer.a sp http://www.iga.ca/templates/epicerie/circulaire/index.php?lang=fr&pg 

Ces catalogues on plusieurs page.

Quelqu'un aurait un lien ou un bout de code pour m'aider s.v.p.



Hello,

En fait, ce que tu demandes, c'est de récupérer les images, de les
télécharger, de les lire par une reconnaissance optique (du style
OCR), puis interpréter les données, si je comprends bien?
(ou dans le cas de MAXI, éventuellement récupérer le texte directement
à partir de http://maxi.flyerservices.com/noncached_pages/AccessibleFlyer /AccessibleCitySelector.aspx)

La première partie consiste alors à lire la page pour retrouver
l'image. A la main, on trouve dans la source de la page:
http://www.iga.ca/templates/epicerie/circulaire/images/circulaire22/Pnn.jpg
où nn est le numéro d'image.
Pour récupérer l'image, c'est possible d'utiliser URLDownloadToFile
(ou une autre méthode, comme exposé ici:
http://groups.google.com/group/microsoft.public.fr.vb/browse_frm/thread/cdd 746927ff3fac2/08e4826c8eb16849?lnk=st&q=URLDownloadToFile+group%3Amicro soft.public.fr.vb&rnum=2#08e4826c8eb16849)
Le dernier numéro de page est indiqué:
- Par recherche dans le DOM de la page
http://www.iga.ca/templates/epicerie/circulaire/index.php?lang=fr&pg
sur tous les éléments img du menu celui d'index le plus grand (dans le
cas particulier de cette page, il s'agit de l'index le plus grand. on
peut alors utiliser quelquechose comme
Dim Imgs As Object
Set Imgs = document.getElementsByTagName("IMG"))
MsgBox (Imgs.item(Imgs.length).src)

en supposant que Document soit un objet document d'un contrôle
webbrowser chargé sur la page en question).
ou
- Attendre qu'URLDownloadToFile sur chaque jpg renvoie une 404

Pour l'OCR, le mieux est d'employer un composant tout fait (à moins de
vouloir réinventer la roue carrée). Par exemple:
http://www.ilixis.com/developer/modi.html, si les postes utilisateur
disposent d'office 2003

Ensuite... il faut interpréter les informations renvoyées.

Dans le second cas, comme évoqué précédemment, il "suffit" de charg er
la page voulue à partir de
http://maxi.flyerservices.com/noncached_pages/AccessibleFlyer/AccessibleCit ySelector.aspx
Ensuite, je te conseille de jeter un oeil au code html généré par
l'une des listes, d'en déduire une stratégie de lecture du contenu
(sachant qu'avec DOM, tu pourras naviguer assez facilement jusqu'aux
<table> reprenant chaque produit, puis jusqu'au td comprenant le
descriptif, puis son innerText), et finalement lire le contenu "à la
main".

Cela étant, dans un cas comme dans l'autre il s'agit d'un design assez
peu robuste (lire il s'agit de chipotage, dont le dysfonctionnement
est garanti à 100% pour un petit changement dans le code du site web,
et vu que pour chaque site web le moyen d'accès peut ête différent, ça
peut facilement devenir ingérable). Pour avoir une solution robuste,
il faudrait contacter ces épiceries pour savoir si elles ne
fournissent pas un moyen d'accès à ces informations moins user-
friendly, par exemple un service web, ou un fichier texte formatté
téléchargeable. Ce genre de choses est plus envisageable, pour des
solution un peu durables.

J'espère que cette réponse te permettra d'y voir un peu plus clair!

François
Avatar
Gloops
Raymond Fournier a écrit, le 01/06/2007 23:12 :
programme. On ma déjà proposer d'utiliser le "DOM". J'ai cher ché sur
l'internent pour des bouts de code mais aucun me permet de trouver les
valeurs que je recherche.

voici les adresses que j'utilise
http://www.maxi.ca/fr/this_weeks_flyer.asp
http://www.iga.ca/templates/epicerie/circulaire/index.php?lang=fr&pg= 01



Salut,

Oui, eh bien le site n'a pas l'air conçu pour ça. A priori on a bien les
caractères majuscules pour la désignation et le signe $ pour le prix,
mais celui-ci n'apparaît pas systématiquement, et la règle pour extraire
la mention qui l'agrémente n'est pas évidente. Il peut s'agir d e "per
extra package", "un", "pour 6 barres" ...

Pas vachement évident de traiter une mention comme "Emballage de 2 6 ,97
Revient à moins de 3,49 un".

Pour ce qui est de chercher de manière automatique le prix au litre ou
au kilo, il y a du boulot.

L'impression que j'ai à ce stade c'est que ce traitement serait du
niveau métalinguistique avancé, en bref pas n'importe qui, et q ue
finalement, sauf à être ce linguiste avec en même temps un e aisance en
programmation, ça risque de prendre moins de temps et de coûter moins
cher de proposer au magasin de lui prêter main forte pour structurer son
site pour que les informations puissent facilement être extraites.
Par exemple, première ligne en majuscules la désignation, deuxi ème ligne
la quantité, un point-virgule, l'unité, un point-virgule, le pr ix, un
point-virgule, prix au litre ou au kilo. Passage à la ligne.
On s'arrangerait sans problème d'un argumentaire commercial sur les
lignes suivantes, qu'on ignorerait dans ce traitement.

C'est juste un exemple qui préserve presque la présentation, ma is en
cherchant du côté de XML ou des micro-formats ...

La convention demande à être affinée un peu, sinon on peut se retrouver
avec des unités du style "pack de 6", donc retour au point de dé part.

Sinon, en l'état, on risque d'aboutir à quelque chose comme les
traductions automatiques qu'on voit sur le site Microsoft (heureusement
signalées par une mention en tête de page histoire de ne pas pe rdre trop
de temps).

A moins que quelqu'un ait une idée géniale pour se contenter du site tel
qu'il est ?
Avatar
Jean-marc
Raymond Fournier wrote:
Bonjour a tous,
Je cherche à lire le contenu d'une circulaire qui est sur l'internet.
C'est une circulaire d'une épicerie. Le but est de récupérer les
items en spécial et leur prix et les comparé avec ma liste d'épicerie
que fabrique mon programme. On ma déjà proposer d'utiliser le "DOM".
J'ai cherché sur l'internent pour des bouts de code mais aucun me
permet de trouver les valeurs que je recherche.

voici les adresses que j'utilise
http://www.maxi.ca/fr/this_weeks_flyer.asp
http://www.iga.ca/templates/epicerie/circulaire/index.php?lang=fr&pg

Ces catalogues on plusieurs page.

Quelqu'un aurait un lien ou un bout de code pour m'aider s.v.p.

Merci Raymond Fournier



Hello,

même réponse que mes honorables collègues :-) Le site est très mal
fait d'un point de vue informatique, tout est sous forme d'images, rien
n'est régulier, etc.

Même en étant très à l'aise en programmation et en maitrisant une foule
de technos (y compris l'OCR), je ne suis pas sur du tout qu'on puisse faire
qq chose de vraiment exploitable, vue le manque total de normalisation des
données.

Le plus simple comme le dit François (et à mon avis la seule solution
réaliste)
c'est de contacter ces gens et de leur demander si ils ne disposent pas de
ces infos
sous forme d'un fichier texte (peu importe le format). Je suppose que d'une
manière ou
d'une autre dans leur processus de création du flyer, ils doivent avoir les
données sous
forme textuelle à un moment ou un autre.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Avatar
Raymond Fournier
"Jean-marc" wrote:

Raymond Fournier wrote:
> Bonjour a tous,
> Je cherche à lire le contenu d'une circulaire qui est sur l'internet.
> C'est une circulaire d'une épicerie. Le but est de récupérer les
> items en spécial et leur prix et les comparé avec ma liste d'épicerie
> que fabrique mon programme. On ma déjà proposer d'utiliser le "DOM".
> J'ai cherché sur l'internent pour des bouts de code mais aucun me
> permet de trouver les valeurs que je recherche.
>
> voici les adresses que j'utilise
> http://www.maxi.ca/fr/this_weeks_flyer.asp
> http://www.iga.ca/templates/epicerie/circulaire/index.php?lang=fr&pg
>
> Ces catalogues on plusieurs page.
>
> Quelqu'un aurait un lien ou un bout de code pour m'aider s.v.p.
>
> Merci Raymond Fournier

Hello,

même réponse que mes honorables collègues :-) Le site est très mal
fait d'un point de vue informatique, tout est sous forme d'images, rien
n'est régulier, etc.

Même en étant très à l'aise en programmation et en maitrisant une foule
de technos (y compris l'OCR), je ne suis pas sur du tout qu'on puisse faire
qq chose de vraiment exploitable, vue le manque total de normalisation des
données.

Le plus simple comme le dit François (et à mon avis la seule solution
réaliste)
c'est de contacter ces gens et de leur demander si ils ne disposent pas de
ces infos
sous forme d'un fichier texte (peu importe le format). Je suppose que d'une
manière ou
d'une autre dans leur processus de création du flyer, ils doivent avoir les
données sous
forme textuelle à un moment ou un autre.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/





Merci beaucoup a tous de vos conseils. Lundi je communique avec eu pour voir
la possibilité d'avoir une version texte.

Raymond Fournier
Avatar
Gloops
Raymond Fournier a écrit, le 03/06/2007 14:32 :
Merci beaucoup a tous de vos conseils. Lundi je communique avec eu pour voir
la possibilité d'avoir une version texte.

Raymond Fournier




Salut,

Si plusieurs magasins concurrents sont concernés, il ne serait pas t rès
surprenant que le plus compétitif d'entre eux soit le plus coopé ratif
pour fournir les informations.

D'ailleurs, ça peut être un argument à garder dans un coin de son esprit
en allant voir les autres.
Avatar
Raymond Fournier
"Gloops" wrote:

Raymond Fournier a écrit, le 03/06/2007 14:32 :
> Merci beaucoup a tous de vos conseils. Lundi je communique avec eu pour voir
> la possibilité d'avoir une version texte.
>
> Raymond Fournier
>

Salut,

Si plusieurs magasins concurrents sont concernés, il ne serait pas très
surprenant que le plus compétitif d'entre eux soit le plus coopératif
pour fournir les informations.

D'ailleurs, ça peut être un argument à garder dans un coin de son esprit
en allant voir les autres.



J'ai eu une réponse d'une des épiceries et il ne sont pas intéresser a me
fournier l'information sous forme de fichier texte !!!

Est-ce possible d'ouvrir le navigateur FireFox et de placer chaque page de
la circulaire dans un onglet ?

Merci Raymond Fournier
Avatar
Gloops
Raymond Fournier a écrit, le 05/06/2007 01:42 :
Est-ce possible d'ouvrir le navigateur FireFox et de placer chaque page de
la circulaire dans un onglet ?




Oui, ça doit pouvoir se faire, et en cherchant là tu trouveras
certainement des pistes pour automatiser un peu le résultat :

http://www.geckozone.org/forum/viewforum.php?f=5

Voir notamment la création d'un ensemble d'onglets.
Avatar
Raymond Fournier
"Gloops" wrote:

Raymond Fournier a écrit, le 05/06/2007 01:42 :
> Est-ce possible d'ouvrir le navigateur FireFox et de placer chaque page de
> la circulaire dans un onglet ?


Oui, ça doit pouvoir se faire, et en cherchant là tu trouveras
certainement des pistes pour automatiser un peu le résultat :

http://www.geckozone.org/forum/viewforum.php?f=5

Voir notamment la création d'un ensemble d'onglets.



Pour ceux que sa intéressent pour ouvrir plusieurs onglets dans firefox il
suffit d'utiliser ShellExecute

Private Declare Function ShellExecute Lib "shell32.dll" Alias
"ShellExecuteA" _
(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
ByVal lpParameters As String, ByVal lpDirectory As String, _
ByVal nShowCmd As Long) As Long

Private Sub Form_Load()

' Pour ouvrir une URL :
Dim http As Long
http = ShellExecute(hwnd, "Open", "http://www.Google.com", "", App.Path, 1)
http = ShellExecute(hwnd, "Open", "http://www.microsoft.com", "", App.Path, 1)
.....

End Sub

Raymond Fournier
Avatar
Gloops
Raymond Fournier a écrit, le 08/06/2007 02:35 :
Pour ceux que sa intéressent pour ouvrir plusieurs onglets dans fi refox il
suffit d'utiliser ShellExecute



Et ce sous réserve de régler les options de Firefox en consé quence, mais
alors ce coup-là, on s'engouffre dans le hors sujet :)