Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Estrarre i meta tag dalla pagina di un sito

    Secondo voi esiste un modo per riempire dei form che devono contenere :

    <meta name="Description" content="Questo sito tratta di ...">
    <meta name="Keywords" content="parole,chiave ">

    Per spiegarmi meglio, durante l'inserimento di vari siti in una directory, vorrei fare in modo
    che dopo avere aggiunto l'URL di un sito, i campi descrizione e parole chiave vengano letti direttamente dall' Index.html oppure dal Default.asp del sito proposto.
    E' una procedura che ho visto una volta sola in una directory...ma non ricordo l'indirizzo web, quindi penso che la cosa sia fattibile...

    Grazie
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Si con XMLHTTP richiami la pagina web e con un po' di espressioni regolari recuperi il contenuto di quei tag.

    Roby

  3. #3
    Utente di HTML.it L'avatar di Robycz
    Registrato dal
    Jul 2002
    Messaggi
    245
    Per cristiano1972:
    la procedurella che trovi qui sotto dovrebbe funzionare.
    Ho estratto titolo e keywords ma, opportunamente modificata, ti estrae qualsiasi cosa.

    Per Roby:
    ho preso spunto dalla tua risposta per ripassarmi un po le regexp scrivendo la procedurina per l'estrazione dei tag chiesta da cristiano1972.
    To come stai a regexp? a livello "mago"? ci daresti un'occhiata?

    La procedurina che ho scritto è questa:
    codice:
    <%
    Dim objXMLHttp
    DIM app, app2, re, titolo, parolechiave
    Set objXMLHttp = Server.CreateObject("Msxml2.XMLHTTP.4.0")
    objXMLHttp.Open "GET", "http://www.html.it", False
    objXMLHttp.Send
    app=objXMLHttp.responseText
    Set re = new RegExp
    re.IgnoreCase = true
    re.Global = false
    re.Pattern = "<title>(.*?)<\/title>"
    Set Matches  = re.Execute(app)
    If Matches.Count > 0 then
      Response.Write "titolo: " & Mid(Matches(0).Value, 8, Len(Matches(0).Value) - 15) & "
    "
    Else
      Response.Write "titolo non presente.
    "
    End If
    re.Pattern = "\x22keywords\x22(.*?)>"
    Set Matches = re.Execute(app)
    If Matches.Count > 0 then
      app2=Mid(Matches(0).Value, 12, Len(Matches(0).Value) - 1)
      re.Pattern="\x22(.*?)\x22"
      set Matches=re.execute(app2)
      Response.Write "parole chiave: " & Mid(Matches(0).Value,2,Len(Matches(0).Value)-2)
    Else
      Response.Write "keywords non presenti.
    "
    End If
    %>
    PS
    i problemi nella ricerca sono tanti, i tag possono contenere spazi in più ecc. ecc.

  4. #4
    Grazie, lo script che mi serve è proprio lui,
    non ho per nulla dimestichezza con objXMLHttp,
    ti chiedo se puoi aggiungere allo script postato anche l'estrazione del TAG
    Description.
    Ho provato da solo, ma certe funzioni non le ho mai usate.

    Grazie della pazienza.
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  5. #5
    Dunque ho provato da solo ad aggiungere al codice la porzione in più
    per stampare a video il META Description

    re.Pattern = "\x22Description \x22(.*?)>"
    Set Matches = re.Execute(app)

    If Matches.Count > 0 then
    app2=Mid(Matches(0).Value, 12, Len(Matches(0).Value) - 1)
    re.Pattern="\x22(.*?)\x22"
    set Matches=re.execute(app2)
    Response.Write "Descrizioe: " & Mid(Matches(0).Value,2,Len(Matches(0).Value)-2) & "
    "
    Else
    Response.Write "Descrizione non presente.
    "
    End If


    Non fa quello che mi aspettavo, si vede che non basta quello che ho fatto.
    Se puoi correggere tu, mi sa che faccio prima.
    Grazie
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  6. #6
    Utente di HTML.it L'avatar di Robycz
    Registrato dal
    Jul 2002
    Messaggi
    245
    codice:
    <%
    Dim objXMLHttp
    DIM app, app2, re, titolo, parolechiave
    Set objXMLHttp = Server.CreateObject("Msxml2.XMLHTTP.4.0")
    objXMLHttp.Open "GET", "http://www.helpinlinea.it", False
    objXMLHttp.Send
    app=objXMLHttp.responseText
    Set re = new RegExp
    re.IgnoreCase = true
    re.Global = false
    
    re.Pattern = "<title>(.*?)<\/title>"
    Set Matches  = re.Execute(app)
    If Matches.Count > 0 then
      Response.Write "titolo: " & Mid(Matches(0).Value, 8, Len(Matches(0).Value) - 15) & "
    "
    Else
      Response.Write "titolo non presente.
    "
    End If
    
    re.Pattern = "\x22keywords\x22(.*?)>"
    Set Matches = re.Execute(app)
    If Matches.Count > 0 then
      app2=Mid(Matches(0).Value, 12, Len(Matches(0).Value) - 1)
      re.Pattern="\x22(.*?)\x22"
      set Matches=re.execute(app2)
      Response.Write "parole chiave: " & Mid(Matches(0).Value,2,Len(Matches(0).Value)-2) & "
    "
    Else
      Response.Write "keywords non presenti.
    "
    End If
    
    re.Pattern = "\x22description\x22(.*?)>"
    Set Matches = re.Execute(app)
    If Matches.Count > 0 then
      app2=Mid(Matches(0).Value, 14, Len(Matches(0).Value) - 1)
      re.Pattern="\x22(.*?)\x22"
      set Matches=re.execute(app2)
      Response.Write "description: " & Mid(Matches(0).Value,2,Len(Matches(0).Value)-2) & "
    "
    Else
      Response.Write "description non presente.
    "
    End If
    
    %>
    PS:
    da notare che ci possono essere problemi vari.. maiuscole/minuscole, tanto per cominciare.

  7. #7
    Ti ringrazio molto per la tua disponibilità,
    mi hai fatto procedere a scheggia nel progetto che sto realizzando,
    tuttavia mi piacerebbe molto capire la logica per utilizzare queste
    funzioni, anche per potere eventualmente ampliare da solo e adattare lo script
    per l'uso corrente.

    app2=Mid(Matches(0).Value, 14, Len(Matches(0).Value) - 1)

    in sostanza cosa fanno e come agiscono nei tag della pagina,
    la corrispondenza dei valori, sospetto che siano Funzioni gia
    dichiarate nel linguaggio, quindi non posso vederle...

    Approfitto anche per farti/vi vedere dove ho applicato il codice gentilmente
    postato sopra.

    http://www.romagnamania.it
    E' un motore di ricerca dedicato all'Emilia Romagna,
    esso non ha spyder, ma almeno estrae i META TAG
    quando gli si propone un URL.
    http://www.romagnamania.com
    Una community tutta gratis per chi ama la Romagna.

  8. #8
    Utente di HTML.it L'avatar di Robycz
    Registrato dal
    Jul 2002
    Messaggi
    245
    la logica è questa:
    1. leggo la pagina e ne metto il "testo" (codice) nella variabile app
    2. con regexp estrapolo da app la stringa che inizia con <title> e finisce con </title>
    3. con regexp estrapolo da app la stringa che inizia con "keywords" e finisce con > e la metto in app2
    .........3.1 con regexp estrapolo da app2 la stringa che inizia con " e finisce con "
    4. con regexp estrapolo la stringa che inizia con "description" e finisce con > e la metto in app2
    .........4.1 con regexp estrapolo da app2 la stringa che inizia con " e finisce con "

    - le funzioni mid e len sono le solite vecchie funzioni del basic
    - regexp è un tipo di oggetto che svolge un pacco di funzioni sulle stringhe

    Per riferimenti su queste funzioni e sui metodi/proprietà degli oggetti di tipo regexp ti conviene cercare in HTML.it

    °_°

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.