je voudrais faire un robot d'indexation

WRInaute discret
bonjour, j'utilise le code en dessous pour récupérer la source d'une page (j'essaie de construire un petit robot sans prétention), seulement certains caractères passe mal, comment puis-je régler ce problème merci (inutile de faire un replace, tout les caractères sont remplacé par ?)
ps: je suis en asp

Dim texte
Dim xml_http
Set xml_http = Server.CreateObject("Microsoft.XMLHTTP")
xml_http.Open "GET", "http://www.lesite.com", False
xml_http.Send
texte = xml_http.responseText
Set xml_http = Nothing

response.write texte
 
WRInaute discret
tu ce qui est composé d'accent, donc é è bien sur mais d'autre chose sont coupés par exemple
variété il répond vari?s
hésitez par h?tez

tout ce qui est à base d'accent est remplacé par un ?
 
WRInaute impliqué
et pourquoi tu ne fait pas un

response.write server.urlencode(texte)

pour voir les caractères retournés

Est ce que le fichier que tu lis est en UTF ? Est ce un fichier XML ?
 
WRInaute discret
non cela ne marche pas

je lis en utf

j'ai même essayé
Dim texte
Dim xml_http
Set xml_http = Server.CreateObject("Microsoft.XMLHTTP")
xml_http.Open "GET", url, False
xml_http.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xml_http.Send
texte = xml_http.responseText
Set xml_http = Nothing
 
WRInaute impliqué
Oui et je suppose que tu affiche en ISO, ce qui explique le problème d'affichage. Si c'est ca, j'ai eu le cas avec les fichiers xml d'amazon et j'ai été obligé de me taper une fonction de conversion à la main pour les principaux caractères accentués, de mémoire ils étaient sous la forme ˜&un autre code bizarre;
 
WRInaute impliqué
J'ai eu ce même problème, en voulant faire un truc en asp alors que cela fonctionnait bien en vbscript.

Je n'ai aps trouvé de solutions.
 
Nouveau WRInaute
Bonjour,

J'ai le même problème qu'angelus_2. Le problème est constaté lorsque je veux récupérer une page html via l'objet xmlhttp qui contient un caractère accentué en dur : le mot états s'affiche ?ts. Si le caractère accentué est codé en html tout se passe très bien : états s'affiche états .

J'ai aussi tenté des replaces sans succés, idem avec un htmlencode ou en utilisant l'objet MSXML2.ServerXMLHTTP à la place de Microsoft.XMLHTTP.

Crawl_url = request.querystring("lurl")
Set objCon = Server.CreateObject ("Microsoft.XMLHTTP")
'Set objCon = Server.CreateObject("MSXML2.ServerXMLHTTP")
objCon.Open "GET", Crawl_url, False, "", ""
objCon.SetRequestHeader "Content-type", "text/html"
objCon.Send
strPage = objCon.ResponseText
response.write strPage

Y-a-t-il quelque chose à définir dans le global.asa ?
Existe-t-il d'autres objects pour récupérer le source d'une page web ?

Merci
 
WRInaute accro
Bon, qui vient boire une biere avec moi.... On a encore trouvé es extraterrestres là....

Scusez pour le hors-sujet.... ! :)
 
Nouveau WRInaute
herveG, tu nous fais perdre notre temps : ton lien n'a rien à voir avec le sujet. Vas donc voir ailleurs si tu n'as pas de réponse à apporter.

Pour l'heure ma question est toujours d'actualité, si quelqu'un a une idée je suis preneur....

merci
 
WRInaute accro
herveG a dit:
Bon, qui vient boire une biere avec moi.... On a encore trouvé es extraterrestres là....

Scusez pour le hors-sujet.... ! :)

Moi je te comprend herveG... allons boire une bière et laissons-les discuter ensemble :lol:
 
Nouveau WRInaute
Solution trouvée sur un autre site via l'object MSXML2.serverXMLHTTP.4.0 et sa méthode responsetext

sFile = "test.txt"
Crawl_url = request.querystring("lurl")

Set objXMLHTTP = CreateObject("MSXML2.serverXMLHTTP.4.0")

objXMLHTTP.Open "GET", Crawl_url , False
objXMLHTTP.Send

set strm1=createobject("adodb.stream")
With strm1
.type = 1
.open
.write objXMLHTTP.responsebody
.savetofile sFile, 2' adSaveCreateOverWrite
.close
End With

set strm2=createobject("adodb.stream")
With strm2
.type = 2
'.charset="euc-kr" 'Use any proper charset
.charset="iso-8859-1" 'Use any proper charset
.open
.loadfromFile "test.txt"
'msgbox .readText
.close
End With

A+
 
WRInaute accro
arnaudf a dit:
herveG, tu nous fais perdre notre temps : ton lien n'a rien à voir avec le sujet. Vas donc voir ailleurs si tu n'as pas de réponse à apporter.

Pour l'heure ma question est toujours d'actualité, si quelqu'un a une idée je suis preneur....

merci

desserre, desserre....

le lien a à voir avec la question qui m´étais posée. ca devient lourd ces temps ci dans ce coin là...
 
Discussions similaires
Haut