Yahoo Clever wird am 4. Mai 2021 (Eastern Time, Zeitzone US-Ostküste) eingestellt. Ab dem 20. April 2021 (Eastern Time) ist die Website von Yahoo Clever nur noch im reinen Lesemodus verfügbar. Andere Yahoo Produkte oder Dienste oder Ihr Yahoo Account sind von diesen Änderungen nicht betroffen. Auf dieser Hilfeseite finden Sie weitere Informationen zur Einstellung von Yahoo Clever und dazu, wie Sie Ihre Daten herunterladen.

Wer weiß, wie man mit VB eine Abfrage an einer Suchmaschine durchführt?

ich möchte mit VB 5.0 ein Programm schreiben, dass über das Internet z.B. bei Yahoo eine Abfrage durchführt und die Ergebnisse auswertet. Das Problem ist, dass man ,wenn man den HTML-Code mit z.B. den WebBrowser-Steuerelement herunterlädt, immer ein wirrwarr aus Javascript erhält und keine konkreten Links.

1 Antwort

Bewertung
  • vor 1 Jahrzehnt
    Beste Antwort

    Hi!

    Ich programmiere im Moment nur VB.NET, aber ich glaube in VB 5 ist das auch so:

    Falls Du die Seite mit dem Webbrowser-Steuerelement ansiehst, ist es einfach. Da kann man nämlich per Javascript (sieht so aus) auf die Elemente zugreifen, die im Dokument die Links auf die Ergebnisseiten enthalten. Wenn man die Google-Ergebnisseite mit Firebug untersucht, sieht man, dass alle Links die Klasse "l" (kleines L). Mit dem Webbrowser kann man so darauf zugreifen:

    Dim erstesergebnislink As String

    erstesergebnislink = GeckoWebBrowser1.Document.GetElementsByClassName("l").Item(0).Attributes.Item("href").TextContent.ToString

    (Hat ziemlich lange gedauert, das herauszufinden.)

    Sonst kann man, wenn man das Dokument irgendwie heruntergeladen hat, die html-Datei als XML-Dokument behandeln (ist ja auch eigentlich xml) und so darauf zugreifen.

    Dim seite As System.Xml.XmlDocument

    Dim linkurl As String

    seite = New System.Xml.XmlDocument

    seite.load("Seite.html")

    linkurl = seite.GetElementById("res").SelectNodes("div").Item(0).SelectSingleNode("ol").SelectNodes("li").Item(0).SelectSingleNode("a").Attributes.Item("href").InnerText.ToString()

    Man kann, wenn man die seite als string hat, und nicht als Datei, statt

    seite.load("Seite.html")

    seite.LoadXml(string mit "<html>...</html>")

    benutzen.

    Falls Du Rückfragen hast, schick mir doch eine Mail.

    mfg

    Patrick

Haben Sie noch Fragen? Jetzt beantworten lassen.