Page 1 sur 1

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

Posté : lun. 30 mars 2015 15:11
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.

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

Posté : lun. 30 mars 2015 15:28
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...

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

Posté : lun. 30 mars 2015 15:48
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!

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

Posté : lun. 30 mars 2015 16:44
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?

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

Posté : lun. 30 mars 2015 19:41
par jguinch
Perso, j'attaquerais directement avec une petite regex qui va bien :
► Afficher le texte

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

Posté : lun. 30 mars 2015 21:43
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;", "")

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

Posté : lun. 30 mars 2015 21:49
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: