Voici une fonction pour extraire l'adresse de l'image en HTML :
le principe principal est d'utiliser des expressions régulières pour déterminer l'attribut <src> de <img>. Cela sera très utile dans les programmes d’acquisition.
La fonction est la suivante :
Ce qui suit est un fragment de citation :
Fonction ShowPic(str)
Set objRegExp = Nouvel objet de configuration Regexp'set
objRegExp.IgnoreCase = True'Ignorer la casse
objRegExp.Global = True' défini sur la recherche en texte intégral
objRegExp.Pattern = "<img.+?>"
« Afin de garantir que l'adresse de l'image peut être récupérée avec précision, elle est divisée en deux niveaux de configuration : recherchez d'abord la balise <img> à l'intérieur, puis récupérez l'adresse de l'image à l'intérieur. La fonction getimgs derrière elle implémente cette dernière fonction.
strs=trim(str)
Set Matches =objRegExp.Execute(strs)'Démarrer l'exécution de la configuration
Pour chaque match dans les matchs
RetStr = RetStr &getimgs( Match.Value )'Effectuer le deuxième tour de correspondance
Suivant
ShowPic = RetStr
Fonction de fin
Fonction getimgs(str)
getimgs=""
Définir objRegExp1 = Nouvelle expression rationnelle
objRegExp1.IgnoreCase = Vrai
objRegExp1.Global = Vrai
objRegExp1.Pattern = " http://.+?"""' Récupère l'adresse à l'intérieur
set mm=objRegExp1.Execute(str)
Pour chaque Match1 en mm
getimgs=getimgs&left(Match1.Value,len(Match1.Value)-1)&"||"'Chaîne les adresses à l'intérieur pour une utilisation ultérieure
suivant
Fonction de fin
'Obtenir le contenu de l'image
fonction getHTTPage(url)
en cas d'erreur, reprendre ensuite
atténué http
set http=server.createobject("MSXML2.XMLHTTP")'Utilisez la méthode xmlhttp pour obtenir le contenu de l'image
Http.open "GET",url,false
Http.envoyer()
si Http.readystate<>4 alors
fonction de sortie
finir si
getHTTPPage=Http.responseBody
définir http = rien
si err.number<>0 alors err.Clear
fonction de fin
'Enregistrer l'image
fonction saveimage (de, vers un fichier)
faible geturl, objStream, imgs
geturl=trim(de)
imgs=gethttppage(geturl)'Le processus d'obtention du contenu spécifique de l'image
Set objStream = Server.CreateObject("ADODB.Stream")' Pour créer un objet ADODB.Stream, ADO 2.5 ou supérieur est requis
objStream.Type =1'Ouvrir en mode binaire
objStream.Open
objstream.write imgs' écrit le contenu de la chaîne dans le tampon
objstream.SaveToFile server.mappath(tofile),2'-écrit le contenu mis en mémoire tampon dans le fichier
objstream.Close()'Fermer l'objet
définir objstream = rien
fonction de fin
'Instance d'appel
Dim strpic,i,fname
strpic = ShowPic("<DIV align=center><IMG src="" strpic = Split(strpic,"||")
Si UBound(strpic) > 0 Alors
Pour i = 0 Vers UBound(strpic) - 1
'Enregistrer l'image
fname=cstr(i&mid(strpic(i),instrrev(strpic(i),".")))
sauvegarder l'image (strpic (i), fname)
Suivant
Autre
Fin si