[..] Autoit pour "grabber" une page web?

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
clark17
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 23 sept. 2011 02:12
Status : Hors ligne

[..] Autoit pour "grabber" une page web?

#1

Message par clark17 »

Bonjour à tous,

J'ai dans l'idée de faire un petit programme qui va chercher puis extraire une information contenue dans une page web. Ensuite de modifier un fichier texte avec les infos obtenues.
Ne connaissant pas bien les capacités du langage dans ce domaine, je me demande si c'est possible de faire ça en Autoit?

Merci de votre aide.
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Autoit pour "grabber" une page web?

#2

Message par jguinch »

Certainement.
Si c'est un simple page web, InetRead suffit pour lire le contenu.
Après pour l'extraction des infos, difficile de répondre sans voir le contenu de la page...
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
clark17
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 23 sept. 2011 02:12
Status : Hors ligne

Re: [..] Autoit pour "grabber" une page web?

#3

Message par clark17 »

Merci de ta réponse, j'étais effectivement parti sur cette fonction. Pour info j'en suis la:

Code : Tout sélectionner

;Ce script télécharge les prix des carburants pour ets2

#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Icon=ico\fuel.ico
#AutoIt3Wrapper_Compression=4
#AutoIt3Wrapper_UseX64=n
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****

; Liste des includes nécessaire
#include <InetConstants.au3>
#include <MsgBoxConstants.au3>


;Renseignement sur le programme
Local $boite = MsgBox(1, "Prix des carburants", "Souhaitez-vous mettre à jour le prix du carburant?")
If $boite = 2 Then Exit

;Création de la fenêtre de progression
ProgressOn("Prix des carburants", "Veuillez patienter...")
ProgressSet(0, "Téléchargement sur le net")

; Sauvegarde la page internet dans un fichier temporaire
Local $fichier = "fuel_price.txt"

; Download the file by waiting for it to complete. The option of 'get the file from the local cache' has been selected.
    Local $telechargement = InetGet("http://www.fuel-prices-europe.info/", $fichier, $INET_FORCERELOAD)

; Retrieve the filesize.
Local $FileSize = FileGetSize($fichier)

; Display details about the total number of bytes read and the filesize.
MsgBox($MB_SYSTEMMODAL, "", "The total download size: " & $telechargement & @CRLF & _
    "The total filesize: " & $FileSize)

; Delete the file.
;FileDelete($fichier)
 
Le but du script est d'aller sur le site www.fuel-prices-europe.info afin de récupérer les prix des carburants pour différents pays d'Europe. Ensuite il va falloir que je traite ses données afin de modifier des fichiers textes contenus dans un fichier zip. Il va me falloir des regex je le sens!
clark17
Niveau 4
Niveau 4
Messages : 70
Enregistré le : ven. 23 sept. 2011 02:12
Status : Hors ligne

Re: [..] Autoit pour "grabber" une page web?

#4

Message par clark17 »

Je viens découvrir ce script: http://www.thorsten-willert.de/Themen/A ... HTML.au3?a ou http://thorsten-willert.de/Themen/AutoIt/files

A priori c'est exactement ce qu'il me faut, convertir un tableau HTML en tableau autoit. Malheureusement cela ne semble pas fonctionner...

Quelqu'un a déjà utilisé ce script?
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Autoit pour "grabber" une page web?

#5

Message par jguinch »

Perso, j'attaquerais directement avec une petite regex qui va bien :
► Afficher le texte
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Autoit pour "grabber" une page web?

#6

Message par mikell »

Le HTML.au3 cité comporte des erreurs, notamment il manque l'option (?s) dans les regex

Sinon jguinch, ça serait peut-être plus sûr de procéder en 2 étapes, ici il se trouve que $i/9 ça va bien mais dans d'autres circonstances une case qui manque dans le tableau et c'est mort
BTW pas besoin de regex ici

Code : Tout sélectionner

$aInfos[$i / 9][$j] = StringReplace( StringReplace($aRes[$i + $j] , "&euro;", "€"), "&nbsp;", "")
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jguinch
Modérateur
Modérateur
Messages : 2515
Enregistré le : lun. 14 févr. 2011 22:12
Status : Hors ligne

Re: [..] Autoit pour "grabber" une page web?

#7

Message par jguinch »

C'est pour ça que j'avais testé la taille du tableau de retour avec Mod(UBound($aRes), 9). Mais je suis d'accord sur le fait que ça serait plus sûr de faire ça en 2 étapes.
Pour la regex, je crois que j'ai trop pris l'habitude :roll:
Le script, ça fait gagner beaucoup de temps... à condition d'en avoir beaucoup devant soi !
Répondre