Page 1 sur 1

Lire un fichier HTTP

Publié : mar. 14/mars/2017 19:55
par ChaudEf
Bonsoir, je voudrais lire un fichier se trouvant sur internet, ou plutot examiner si un certain mot se trouve sur une page html.

Pour ce faire, je telecharge la page, puis ouvre le fichier telecharge, et ensuite findstring(readfile(0), "texte").
C'a m'a l'air un peu tordu comme methode, est ce qu'il y a un moyen plus intelligent de le faire?

Merci

Re: Lire un fichier HTTP

Publié : mar. 14/mars/2017 21:06
par Ollivier
Ta méthode semble être la plus rapide.
Le risque d'erreur se tient à l'ignorance des balises. Donc risque de trouver le bon mot au mauvais endroit si ce mot existe en doublon dans le fichier distant.

Pour solutionner, il faut repérer les balises utiles au repérage dudit mot à rechercher (une base de repère peut être la paire de balises <BODY> </BODY>).

Une autre technique possible : asservir Google ou autre moteur de recherche.

Re: Lire un fichier HTTP

Publié : mer. 15/mars/2017 0:38
par cage
Pour Windows, on peut aussi utiliser les commandes find ou findstr qui offrent pas mal de possibilité.
find /? et findstr /? dans une fenêtre cmd pour une aide complète.
En conjonction avec la commande clip, il est possible de récupérer le résultat dans le presse papier.
A utiliser avec RunProgram()
Exemple: findstr /i /c:"texte" fichier.html | clip

Re: Lire un fichier HTTP

Publié : mer. 15/mars/2017 2:09
par Ar-S
ReceiveHTTPMemory pour ne pas t'embêter avec un fichier.. puis findstring.

Note: cette methode lit le code source, pas le rendu de la page.

Code : Tout sélectionner

 InitNetwork()
; page de pb en mémoire
  *Buffer = ReceiveHTTPMemory("http://www.purebasic.com/index.php")
  If *Buffer
    Taille = MemorySize(*Buffer)
    Page.s = PeekS(*Buffer, Taille, #PB_UTF8|#PB_ByteLength)
    FreeMemory(*Buffer)
    
; recherche
    Debug "Recherche du mot purebasic dans la page: "  
          Nbr = CountString(Page.s,"purebasic")
    Debug "Purebasic a été trouvé " + Str(Nbr) + " fois !"
    
  Else
    Debug "Le téléchargement a échoué"
  EndIf