23 messaggi dal 03 luglio 2001
Salute a tutti.
E' possibile in asp prelevare il valore dei metatag dalle pagine in Web e inserirle in una variabile ?!?!?

carmine
11.886 messaggi dal 09 febbraio 2002
Contributi
i metatag di quali pagine web? del tuo sito? remote? in tutte le cartelle? Una riga e mezza non è molto esplicativa...

Enjoy learning and just keep making
23 messaggi dal 03 luglio 2001
Ciao BrightSoul
volevo capire se è possibile, richiamando un sito, conoscere i suoi metatag in automatico, vedi motori di ricerca.
Graziie

carmine
11.886 messaggi dal 09 febbraio 2002
Contributi
Si, dovrebbe essere possibile... tagliuzzando qua e là l'output della pagina...

Innanzitutto devi sapere come prelevare dell'output da una pagina remota con l'oggetto XMLHTTP:
http://www.aspitalia.com/liste/usag/script.aspx?ID=309

fatto quello, avrai nella variabile content, tutto l'html della pagina.
Tu sai che i metatag devono trovarsi tra i tag head, per cui eliminiamo tutto il resto:

'queste sono le posizioni dei tag head all'interno del contenuto
pos1 = Instr(content, "<head>")
pos2 = Instr(content, "</head>")

if pos1 > 0 and pos2 > 0 then
content = Mid(content, pos1+6, pos2-1)
end if

Bene a questo punto, content dovrebbe contenere esattamente quello che si trova tra i tag head. Ora dobbiamo rilvare la presenza dei metatag. Come si fa? boh!
no scherzo... ^__^ ogni metatag inizia con questa sintassi:
<meta
per cui metteremo in un arrai tutte le occorrenze di <meta.

Dim metatags()
contatore = 0
while Instr(content, "<meta") > 0
pos1 = Instr(content, "<meta")
pos2 = Instr(content, ">")
Redim Preserve metatags(contatore)
metatags(contatore) = Mid(content, pos1, pos2)
content = Left(content, pos2+1)
wend

Adesso dovresti aver ottenuto un array di tanti elementi quanti sono i metatag nella pagina. Ogni elemento dell'array conterrà una cosa del genere:

metatags(0) = <meta http-equiv="Content-Language" content="it">
metatags(1) = <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

Adesso dovresti splittare ogni elemento dell'array sullo spazio, in modo che il secondo, terzo elemento contengano cose del tipo:
http-equiv="Content-Language"

Rieffettui un'altro split sull'uguale, elimini le virgolette e finalmente sei arrivato:
riesci a sapere che http-equip = Content-Language

Purtroppo non so esistono altri metodi per andare a "curiosare" sulle pagine di altri siti.
Puoi provare a cercare il metodo che usano i motori di ricerca veri, non so che dire...




Enjoy learning and just keep making
23 messaggi dal 03 luglio 2001
Grazie
farò un po di prove
Grazie

carmine
23 messaggi dal 03 luglio 2001
Ovviamente
come volevasi dimostrare su aruba
l'oggetto ServerXMLHTTP non esiste ?!?
provo su altri server con free asp
ciao

carmine
11.886 messaggi dal 09 febbraio 2002
Contributi
non ti preoccupare, poteva capitare.
Anche io ho uno spazio su aruba ed ho avuto occasione di usare l'oggetto XMLHTTP in passato. Capita solamente che non è supportata quella versione. Al posto di quello script usa questo che, salvo recenti sconvolgimenti, dovrebbe funzionare:

percorso = "http://www.tuosito.it/default.asp"
Set objXMLHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objXMLHTTP.Open "GET", percorso, False
objXMLHTTP.Send
content = objXMLHTTP.responseText
set objXMLHTTP = nothing

in questo modo (Microsoft.XMLHTTP) istanzi una versione "diversa" dell'oggetto, e così dovrebbe andare.
Nella variabile content troverai l'output della pagina remota.
Modificato da BrightSoul il 09 ottobre 2002 15.51 -

Enjoy learning and just keep making
23 messaggi dal 03 luglio 2001
Ho provato
funziona, ora scriverò il resto per leggere i matatag.
Ho fatto l'iscrizione all'hosting ionwd.com per le prove e sembra che funzioni anche li.!!! carmine.ionwd.com
proviamo

carmine

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.