Metatags einer fremden Internetseite auslesen

Hallo zusammen,

ich möchte wie bei http://www.webmaster-eye.de/metatags-auslesen.html Metatags (Title, Description und Keywords) einer fremden Seite auslesen. Ich programmiere in ASP.NET (Visual Basic). Habt Ihr Ideen wie ich dieses am einfachsten umsetze?

Vielen Dank im Voraus!

Eine praktische Library im Zusammenhang mit HTML ist das HTMLAgilityPack (http://www.codeplex.com/htmlagilitypack). Damit so ziemlich alles mit dem Inhalt einer Website anfangen.

Ich habe jetzt kein Beispiel zur Hand, aber hier: http://forums.asp.net/p/1507828/3583930.aspx gibt’s eines in C#:

HtmlDocument doc = new HtmlDocument();

doc.Load(path); // or .LoadHtml(html);

HtmlNode node = doc.DocumentNode.SelectSingleNode("//meta[@name=‚description‘]");

if (node != null) {

string desc = node.GetAttributeValue(„content“, „“);

// TODO: write desc somewhere

}

Hoffe das hilft Dir weiter.

Da Du Deine Frage hier auch schon mal gestellt hast und mit den Antworten wohl nichts anfangen kannst, hier nochmal ein Versuch.
http://social.msdn.microsoft.com/Forums/de-DE/aspnet…

Ich würde es so machen:

  1. Zuerst den Quelltext der Seite runterladen (gibt 1000 Beispiele dazu im Internet - Stichwort HttpWebRequest)
  2. Da eine die HTML-Seite wellformed sein muss um einen XML-Parser (DOM/SAX) drauf loszulassen, wäre ich auch für den RegularExpression Ansatz

hier ein Beispiel

C#:
RegEx bla = new Regex("");

Sorry, kann dir hier nicht helfen.
Hoffe du findest jemanden der dir helfen kann.

Gruss Dirk

Vielen Dank!

Ich habe es wie folgt gelöst:
Erstaunlich ist nur, dass Google zb. keine Keywords hat…

Imports System
Imports System.IO
Imports System.Net
Imports System.Text

Partial Class _Default
Inherits System.Web.UI.Page
Public Function HieroglypheToUmlaut(ByVal Zeichenfolge As String) As String
Zeichenfolge = Replace(Zeichenfolge, „“, Nothing)
Zeichenfolge = Replace(Zeichenfolge, „ä“, „ä“)
Zeichenfolge = Replace(Zeichenfolge, „Ä“, „Ä“)
Zeichenfolge = Replace(Zeichenfolge, „ö“, „ö“)
Zeichenfolge = Replace(Zeichenfolge, „Ö“, „Ö“)
Zeichenfolge = Replace(Zeichenfolge, „ü“, „ü“)
Zeichenfolge = Replace(Zeichenfolge, „Ãœ“, „Ü“)
Dim umgewandelt As String = Replace(Zeichenfolge, „ß“, „ß“)
Return umgewandelt
End Function

Protected Sub Button3_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim client As WebClient = New WebClient()
Dim reply As String = client.DownloadString("http://amazon.de")
Dim TitleTag As String
Dim DescriptionTag As String
Dim KeywordsTag As String

TitleTag = „no title“
DescriptionTag = „no description“
KeywordsTag = „no keywords“

Dim r As Regex
Dim m As Match

'TitleTag
r = New Regex("(?)([\s\S]*)(?=)", RegexOptions.IgnoreCase Or RegexOptions.Compiled)
m = r.Match(reply)
While m.Success
TitleTag = m.Value
m = m.NextMatch()
End While

‚KeywordsTag
r = New Regex("]*?name[\s]?=[\s""‘]+(.*?)keywords[\s""’]+content[\s]?=[\s""’]+(.*?)[""’]+.*?>", RegexOptions.IgnoreCase Or RegexOptions.Compiled)
m = r.Match(reply)

If m.Success Then KeywordsTag = m.Groups(2).Value

‚DescriptionTag
r = New Regex("]*?name[\s]?=[\s""‘]+(.*?)description[\s""’]+content[\s]?=[\s""’]+(.*?)[""’]+.*?>", RegexOptions.IgnoreCase Or RegexOptions.Compiled)
m = r.Match(reply)

If m.Success Then DescriptionTag = m.Groups(2).Value

Response.Write(HieroglypheToUmlaut(Server.HtmlDecode(TitleTag)) & "
")
Response.Write(HieroglypheToUmlaut(Server.HtmlDecode(DescriptionTag)) & "
")
Response.Write(HieroglypheToUmlaut(KeywordsTag))

End Sub
End Class