Comment puis-je créer un IHTMLDocument2 l'aide d'une chaîne de TIdHTTP?
- Je télécharger une URL avec IdHTTP.Get
, et j'ai besoin de rechercher les balises HTML et en extraire des données.
Comment je peux convertir la chaîne de caractères qui IdHTTP.Get
renvoie dans un IHTMLDocument2
?
merci, mais cet article utilise les twebbrowser et j'ai l'habitude d'utiliser le webbrowser. parce que je n'ai pas besoin de rendu html, j'ai juste besoin de texte HTML pour l'extraction des données, et la vitesse est très important pour moi.
OriginalL'auteur SadeghAlavizadeh | 2012-08-11
Vous devez vous connecter pour publier un commentaire.
Essayez celui-ci:
OriginalL'auteur Keeper
J'ai Googlé ce problème et je peux trouver un bon code:
Ce qui concerne
IdHTTP
a laGet
surcharge de la méthode vous permettant de recevoir la réponse de flux (en fait, est utilisé dans l'unique de vous ramener à la chaîne).Je ne voudrais pas utiliser ce code. tous les
designMode
etApplication.ProcessMessages
pour vérifierreadyState
n'est pas nécessaire. Vous n'avez pas besoin de passer àdesignMode=on
afin d'être en mesure d'écrire dans unIHTMLDocument
. Je vous suggère fortement d'utiliser @Gardien du code.intéressant, c'est que, et que même le Gardien du code ne fonctionne pas sur
IHTMLDocument2::write
ligne avecInvalid argument
sur Windows 7, Delphi 7 (Personnels) avec importé MSHTML bibliothèque de type. Le même se passe avecPSafeArray(VarArrayAsPSafeArray(VarArrayOf([HTMLWideString])))
.J'ai l'habitude de déclarer
document
commeOleVariant
et de la créer via la liaison tardive, par exemple:document := CreateComObject(CLASS_HTMLDocument) as IDispatch
et simplement utiliserdocument.write(<WideString>)
. C'est peut-être pourquoi je n'ai jamais rencontré ce problème(?)...il fonctionne avec la bibliothèque de type livré avec Delphi, mais n'a pas si vous importez par vous-même (Windows 7). Encore plus étrange, c'est qu'ils sont même pour
IHTMLDocument2
interface.OriginalL'auteur SadeghAlavizadeh