Récupération du code html d'une url via jmail.

0/5 (7 avis)

Snippet vu 8 021 fois - Téléchargée 39 fois

Contenu du snippet

Un code simple pour récupérer le code HTML retourné par une URL.
Idéal pour enregistrer au format HTML des pages dynamiques ASP, tester le contenue de pages pour voir si elles ont été modifiées, enregistrer le contenue d'une page dans votre basse de donnée...

Source / Exemple :


<%@ LANGUAGE = VBScript %>
<%
Response.Buffer = True
Response.Expires = 0
Response.ExpiresAbsolute=now() - 1

'Pour des tests changez cet URL
	URL_DE_DEMO = "www.google.fr"
' www.votresite.com/votrepage.asp?param1=1&param2=2... marche aussi !
' L'entête http:// n'est pas obligatoire.

function GetHTML_FromURL(votreURL)
	dim mail
		'*************************************
		' Récupération de page Web en ASP.	
		' Astuce simple nécessitant JMail.
		' .:| Yannick :: ANNECY :: FRANCE |:.
		'*************************************

	Set mail = Server.CreateObject("JMail.SMTPMail") 'Composant de www.duplo.se
	'Ce composant permet l'envoi d'un mail dont le contenu est une page web !
	
	mail.GetMessageBodyFromURL(votreURL)
	'On recupère la page que l'on veux, une page ASP ou PHP arrive en HTML (executée) !
		
	GetHTML_FromURL = ""& mail.HTMLBody &""
	'On renvoi le code HTML contenu maintenant dans la propriété HTMLBody
	
end function
%>
<HTML>
<TITLE>ASP .:|Yannick|:.</TITLE>
<BODY bgcolor="#C0C0C0">
<H1>RECUPERATION DE CODE HTML VIA ASP</H1>
<HR>
Le code source de <b><a href="<%if not ""&left(URL_DE_DEMO,7)&""="http://" then%>http://<%end if%><%=URL_DE_DEMO%>" target="_blank"><%=URL_DE_DEMO%></a></b>&nbsp;:<br>
<TEXTAREA cols="100" rows="25">
<%response.write GetHTML_FromURL(URL_DE_DEMO)
' Affiche le code HTML de l'URL sur votre page.

' PS :
' pour un enregistrement en base de donnée via SQL
' n'oubliez pas de faire un replace(CODE_HTML,"'","''")
' Car la page récupérée peut contenir des ' qui font foirer les requettes SQL !
%>
</TEXTAREA>
</BODY>

Conclusion :


Voilà, ca évite de jouer avec des Client Winsock sur le port 80 !

A voir également

Ajouter un commentaire Commentaires
_Thy_ Messages postés 33 Date d'inscription mardi 24 août 2004 Statut Membre Dernière intervention 19 septembre 2005
10 nov. 2005 à 11:27
Excellente solution mais je n'ai ni Jmail ni la possibilité de l'installer, ni bien sur .Net

Pour ceux qui sont dans mo cas (en asp "tout court") j'ai trouvé ceci qui fonctionne bien :
http://www.aspfaq.com/show.asp?id=2173
cs_Targos Messages postés 26 Date d'inscription samedi 18 janvier 2003 Statut Membre Dernière intervention 7 juillet 2008
26 févr. 2004 à 15:35
Ca marche pas avec un lien ASP.NET (.aspx) !!!!!

Quelqu'un a la solution ?
cs_Yannick74 Messages postés 9 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 26 février 2007
12 août 2003 à 14:14
Peut être qu'il faut faire un mail.execute
En effet j'ai été surpris que le code de la page soit rapatrié directement sur le GetMessageBodyFromURL.

Je pense que dans ta version, le code ne sera rapatrié que sur un mail.execute , il faut voir si sans les paramètres minimum (serveur SMTP, adresse mail du SENDER et un DESTINATAIRE) ca peut marcher.

Sinon tu devras en plus renseignez tous ces paramètres (voir doc) pour que ca marche.

Et je te dis tous çà sans pouvoir tester.
cs_Bud Messages postés 224 Date d'inscription vendredi 14 septembre 2001 Statut Membre Dernière intervention 14 juillet 2006
12 août 2003 à 13:53
Bon, j'ai la version 3.7 de Jmail, la fonction "GetMessageBodyFromURL" est implémentée, mais ça ne marche pas...
cs_Yannick74 Messages postés 9 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 26 février 2007
12 août 2003 à 08:24
Non je ne sais pas avec quelle version "minimum" de JMail ca marche.
Il y a juste a regarder dans la doc de ta version si la function "GetMessageBodyFromURL" est implémentée !

Fabrice, c'est vrai que j'ai cherché sur beaucoup de site, le problème se pose souvent, mais les solutions proposés sont souvent complexes.
Afficher les 7 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (cs_Yannick74)