Favicon aus HTML-Code extrahieren

  • Hallo Leute,

    ich will das aktuelle Favicon aus dem HTML-Code extrahieren. Ich hab die entsprechende Zeile gefunden (Beispiel: AutoIt.de: Portal:

    PHP
    <link rel="shortcut icon" href="wcf/icon/favicon/faviconDarkBlue.ico" type="image/x-icon" />

    Weiß jemand wie ich das mit AutoIt realisieren kann, dass AutoIt automatisch aus dem Quelltext diese Zeile extrahiert (

    [autoit]

    #include <String.au3>
    #include <INet.au3>
    $aIconURL = _StringBetween(_INetGetSource("http://autoit.de/index.php?page=Portal"), '<link rel="shortcut icon" href="', '" type=')
    MsgBox(262144 + 64, "Favicon-URL", $aIconURL[0])

    [/autoit]

    ) und dann es irgendwie schafft das zu vervollständigen mit davor autoit.de. Leider ist es nicht immer autoit.de, deswegen suche ich eine Funktion die aus der ganzen URL (z.B. http://www.autoit.de/index.php?form=ThreadAdd&boardID=2) nur noch (http://)(www.)autoit.de macht. Vielleicht ein StringRegEx, ich habe keine Ahnung, hoffe ihr könnt mir weiter helfen. Optional könnt ihr mir vielleicht noch eine Lösung posten, dass ganze als jpg, bmp oder nicht animierte-gif umzuwandeln (mit AutoIt selbsverständlich, vielleicht ein Online-Converter reingeben oder so keine Ahnung, hauptsache in AutoIt geschrieben :D)

    Danke schonmal im vorrauß.

    Mit freundlichen Grüßen,
    BurakSZ

    Einmal editiert, zuletzt von BurakSZ (9. Juli 2010 um 19:06)

  • Was klappt hierdran denn nicht?:

    [autoit]

    #include <String.au3>
    #include <INet.au3>
    $aIconURL = _StringBetween(_INetGetSource("http://autoit.de/index.php?page=Portal"), '<link rel="shortcut icon" href="', '" type=')
    MsgBox(262144 + 64, "Favicon-URL", $aIconURL[0])

    [/autoit]
  • probier mal das hier:

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $aIconURL = StringRegExp(_INetGetSource("http://autoit.de/index.php?page=Portal"),'<link .+"(.+\.ico)"',3)
    _ArrayDisplay($aIconURL)

    [/autoit]

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • Da klappt doch alles, ich habe ja nichts dagegenzusetzen. Aber ich will mit AutoIt das Favicon DOWNLOADEN. Da in der HTML aber nicht der ganze Link angegeben wird, muss ich den Link (autoit.de, google.de, youtube.de, schuelervz.net) davorschreiben. Sonst kann ic h es nicht downloaden. Aber da IMMER der Link (autoit.de, google.de, youtube.de, schuelervz.net) anders ist, muss ich den Link (autoit.de, google.de, youtube.de, schuelervz.net) aus dem GANZEN Link (z.B. http://www.google.de/#hl=de&source=hp&q=autoit.de&aq=f&aqi=g6&aql=&oq=&gs_rfai=&fp=a9ad38de27b2904a) extrahieren sodass ich nur noch (http://)(www.)google.de(/) habe (Die in Klammern sind optional). Dafür such ich ein String, also kurz gesagt:

    Ich will einen Audruck, Funktion, StringRegEx oder was auch immer womit es funktioniert haben, um aus http://www.google.de/#hl=de&source=hp&q=autoit.de&aq=f&aqi=g6&aql=&oq=&gs_rfai=&fp=a9ad38de27b2904a nur noch (http://)(www.)google.de(/) zu haben (Die in Klammern sind optional) zu haben.

  • [autoit]

    #include <String.au3>
    #include <Array.au3>
    $url="http://www.bing.com/"
    $a=_StringBetween($url, "http://", "/")
    _ArrayDisplay($a)
    ;oder
    $a=StringRegExp($url, "http://(.*)/", 3)
    _ArrayDisplay($a)

    [/autoit]
  • Achso du willst den host aus der URL lesen dann Probiers mal so :

    Spoiler anzeigen
    [autoit]

    #include <INet.au3>
    #include <Array.au3>
    $URL = 'http://www.autoit.de/index.php?form=ThreadAdd&boardID=2'
    $Host = StringRegExp($URL,'(www\..+\.(?>de|com|net))',3)

    [/autoit] [autoit][/autoit] [autoit]

    $aIconURL = StringRegExp(_INetGetSource($URL),'<link .+"(.+\.ico)"',3)
    _ArrayDisplay($aIconURL)

    [/autoit]

    EDIT hatte es erst mit dem pattern proboert jedoch klappt das nicht so wie gedacht:

    Code
    (www\..+\.[^/]+)

    Ineluki dein pattern Funktioniert nur, wenn man einen abschließenen / in der URL steht also das geht z.b. schonmal nicht : www. Autoit.de

    Das finden von Rechtschreibfehlern muss sofort und unverzüglich dem Autor gemeldet werden. Das eigennützige Verwenden dieser Rechtschreibfehler ist strengstens untersagt und kann mit Freiheitsenzug bestraft werden.

  • #include <INet.au3> #include <Array.au3> $aIconURL = StringRegExp(_INetGetSource("http://autoit.de/index.php?page=Portal"),'<link .+"(.+\.ico)"',3) _ArrayDisplay($aIconURL)

    Danke, ich werde diese Methode nutzen nur ist das nicht was ich will. Trotzdem danke ich nutze dann diese Methode um die Favicon-URL zu extrahieren.

    Das ist nicht was ich meine. Die Adresse wird vom User eingegeben, also weiß gott ob der User http:// davor schreibt oder www. oder garnichts. Ich überlege ob ich nicht abfrage ob http:// oder www davorsteht (Okay ich mache es danke für deinen tipp.) thema ist erledigt

  • Andere Methode um an das Icon zu kommen:

    Spoiler anzeigen
    [autoit]

    #include <_html.au3>

    [/autoit] [autoit][/autoit] [autoit]

    $sHTML = _HTML_GetSource("http://autoit.de/index.php?page=Portal")
    $sIconURL = _HTML_Get($sHTML, "link", "href", "image/x-icon", "type")
    MsgBox(64,"",$sIconURL)

    [/autoit]