Page 1 sur 1
Accès au code HTML d’une page sur le Web ?
Publié : sam. 01/avr./2006 10:43
par Dräc
En PureBasic, il est facile de lire des données ASCII dans un fichier.
Mais comment s’y prendre pour lire des données ASCII, construites à la volée (donc non enregistrées dans un fichier clairement identifié), et contenues dans une fenetre ?
Typiquement, comment avoir accès au code HTML d’une page sur le Web via PB?
Publié : sam. 01/avr./2006 12:19
par erix14
Il faut utiliser les API : URLDownloadToFile_ ou URLDownloadToCacheFile_ suivant si tu veux le transformer en fichier ou le mettre en cache. Ensuite, tu n'as plus qu'à traiter ce fichier.
Publié : sam. 01/avr./2006 12:19
par Dr. Dri
bah techniquement la page est stockée dans un fichier temporaire... apres pour savoir comment la trouver c'est autre chose. sinon on trouve peut etre tout ca dans le topic de freak:
http://www.purebasic.fr/english/viewtopic.php?t=16837
Dri
Publié : sam. 01/avr./2006 12:52
par Chris
Et par les interfaces, y a pas moyen?
Tous les IHtml.... machin!
Y a pas quelque chose d'exploitable là-dedans?
Publié : sam. 01/avr./2006 13:00
par Droopy
Moi j'utilise ça pour extraire du texte d'une chaine ( HTML )
Code : Tout sélectionner
ProcedureDLL SearchStringInit(String.s)
Global SearchStringIndex,SearchString.s
SearchStringIndex=1
SearchString=String
EndProcedure
ProcedureDLL.s SearchString(StartString.s,EndString.s)
Start=FindString(SearchString,StartString,SearchStringIndex)
If Start
Start=Start+Len(StartString)
EndIndex=FindString(SearchString,EndString,Start)
If EndIndex
SearchStringIndex=EndIndex+Len(EndString)
ProcedureReturn Mid(SearchString,Start,EndIndex-Start)
EndIf
EndIf
EndProcedure
;/ Test
; SearchStringInit("This *is* a Won²der#@=full *test*")
; Debug SearchString("*","*")
; Debug SearchString("²","#@=")
; Debug SearchString("*","*")
et ceci pour lire une page Web et la mettre dans une chaine :
Code : Tout sélectionner
ProcedureDLL.s Url2Text2(URL.s, OpenType.b,ProxyAndPort.s)
; 1 INTERNET_OPEN_TYPE_DIRECT Resolves all host names locally.
; 0 INTERNET_OPEN_TYPE_PRECONFIG Retrieves the proxy Or direct configuration from the registry.
; 4 INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY Retrieves the proxy Or direct configuration from the registry And prevents the use of a startup Microsoft JScript Or Internet Setup (INS) file.
; 3 INTERNET_OPEN_TYPE_PROXY Passes requests To the proxy unless a proxy bypass list is supplied And the name To be resolved bypasses the proxy. In this Case, the function uses INTERNET_OPEN_TYPE_DIRECT.
isLoop.b=1
INET_RELOAD.l = $80000000
hInet.l=0
hURL.l=0
Bytes.l=0
Buffer.s=Space(2048)
RES.s=""
hInet = InternetOpen_("", OpenType, ProxyAndPort, "", 0)
hURL = InternetOpenUrl_(hInet, URL, #Null, 0, INET_RELOAD, 0)
Repeat
InternetReadFile_(hURL,@Buffer, Len(Buffer), @Bytes)
If Bytes = 0
isLoop=0
Else
RES = RES + Left(Buffer, Bytes)
EndIf
Until isLoop=0
InternetCloseHandle_(hURL)
InternetCloseHandle_(hInet)
ProcedureReturn RES
EndProcedure
ProcedureDLL.s Url2Text(URL.s)
ProcedureReturn Url2Text2(URL,1,"")
EndProcedure
Publié : dim. 02/avr./2006 10:42
par Sami
Je connais la solution en vb.
http://www.vbfrance.com/code.aspx?ID=4722
Il existe un autre lien sur le site de supinfo plus détaillé, mais je ne me souviens pas de l'adresse.
Il me semble que les types d'objets utilisés dans ce code sont connut en PureBasic. Si on tape HTML dans l'éditeur, on a une liste de fonctions intérressante.
Ca fonctionne sans probléme en VB avec le contrôle WebBrowser. il faut charger ta page web dans le contrôle. Puis crée l'objet qui va avoir accés aux balises qui la compose. Tout cela est expliqué dans le lien.
Je ne sais pas si c'est la bonne méthode pour le PureBasic, par contre.