Hoe kan ik de favicon van een website te krijgen?

Eenvoudig genoeg vraag: ik heb gemaakt een kleine app die is eigenlijk gewoon een favorieten dat zit in mijn systeem tray, zodat ik vaak gebruikte sites / mappen / bestanden kan openen van de zelfde plaats. Het krijgen van de standaard iconen uit mijn systeem voor bekende bestandstypen is niet erg ingewikkeld, maar ik weet niet hoe de favicon van een website te krijgen. (SO heeft grijs-& gt; oranje stack pictogram in de adresbalk bijvoorbeeld)

Weet iemand hoe ik zou kunnen gaan over dat?


1, Autoriteit 100%

U wilt dit een paar manieren aan te pakken:

  1. Kijk voor de favicon.icoaan de wortel van het domein

    www.domain.com/favicon.ico

  2. Kijk voor een <link>tag met de rel="shortcut icon"attribuut

    <link rel="shortcut icon" href="/favicon.ico" />

  3. Kijk voor een <link>tag met de rel="icon"attribuut

    <link rel="icon" href="/favicon.png" />

De laatste twee meestal een hogere beeldkwaliteit verkregen.


Gewoon om alle bases te dekken, zijn er specifieke apparaat icoon bestanden die kunnen opleveren beelden van hogere kwaliteit, omdat deze apparaten hebben meestal grotere pictogrammen op het apparaat dan een browser nodig zou hebben:

<link rel="apple-touch-icon" href="images/touch.png" />

<link rel="apple-touch-icon-precomposed" href="images/touch.png" />


En om het pictogram te downloaden zonder dat je wat het pictogram kunt u een hulpprogramma gebruiken, zoals http: // www .google.com / s2 / favicons die al het zware werk doen:

var client = new System.Net.WebClient();
client.DownloadFile(
    @"http://www.google.com/s2/favicons?domain=stackoverflow.com",
    "stackoverflow.com.ico");

2, Autoriteit 10%

Bijgewerkt 2020

Hier zijn drie services die u in 2020 kunt gebruiken

<img height="16" width="16" src='https://icons.duckduckgo.com/ip3/www.google.com.ico' />
<img height="16" width="16" src='https://www.google.com/s2/favicons?domain=www.google.com' />
<img height="16" width="16" src='https://api.statvoo.com/favicon/?url=google.com' />

3, Autoriteit 4%

U kunt Google S2-omzetter gebruiken.

http://www.google.com/s2/favicons?Domain= Google.com

Bron: http: // www .labnol.org / internet / get-favicon-image-of-websites-with-google / 4404 /


4, Autoriteit 3%

Het eerste dat moet zoeken is /favicon.ico in de site-wortel; zoiets als webclient.downloadfile () zou het goed moeten doen. U kunt echter ook het pictogram in metadata instellen – want dit is:

<link rel="shortcut icon"
   href="http://sstatic.net/stackoverflow/img/favicon.ico">

en merk op dat alternatieve pictogrammen beschikbaar zijn; De “touch” heeft de neiging groter en hoger res, bijvoorbeeld:

<link rel="apple-touch-icon"
   href="http://sstatic.net/stackoverflow/img/apple-touch-icon.png">

Dus u zou het parseren dat in het HTML Agility Pack of Xmldocument (indien xhtml) en webclient.downloadfile ()

gebruiken

Hier is een code die ik heb gebruikt om dit via het behendigheidspakket te verkrijgen:

var favicon = "/favicon.ico";
var el=root.SelectSingleNode("/html/head/link[@rel='shortcut icon' and @href]");
if (el != null) favicon = el.Attributes["href"].Value;

Let op: het pictogram is van hen, niet van jou.


Antwoord 5, autoriteit 2%

Het is een goede gewoonte om het aantal verzoeken dat elke pagina nodig heeft te minimaliseren.
Dus als je meerdere pictogrammen nodig hebt, kan yandex een sprite van favicons in één zoekopdracht doen.
Hier is een voorbeeld
http://favicon.yandex.net/favicon/google. com/stackoverflow.com/yandex.net/


Antwoord 6, autoriteit 2%

Je kunt de favicon-URL uit de HTML van de website halen.

Hier is het faviconelement:

<link rel="icon" type="image/png" href="/someimage.png" />

Je moet hier een reguliere expressie gebruiken. Als er geen tag wordt gevonden, zoek dan naar favicon.icoin de hoofdmap van de site. Als er niets wordt gevonden, heeft de site geen favicon.


Antwoord 7, autoriteit 2%

Je kunt het zonder programmerendoen in 3 stappen:

    1. Open gewoon de website, klik met de rechtermuisknop en selecteer “bron weergeven”om de HTML-code van die site te openen. Zoek vervolgens in de teksteditor naar “favicon”– het zal u naar iets leiden dat lijkt op

    <link rel="icon" href='/SOMERELATIVEPATH/favicon.ico' type="image/x-icon" />

    Neem de tekenreeks in hrefen voeg deze toe aan de basis-URL van de website (laten we aannemen dat het "http://WEBSITE/"is), zodat het lijkt alsof

    http://WEBSITE/SOMERELATIVEPATH/favicon.ico

    Wat is het absolute pad naar de Favicon. Als je het op deze manier niet hebt gevonden, kan het ook in de root zijn in welk geval de URL http://WEBSITE/favicon.ico

    2. Neem de URL die u hebt bepaald en plaats hem in de HREF -parameter van de volgende code:

    <html>
      <head>
       <title>Capture Favicon</title>   
      </head>
      <body>
        <a href='http://WEBSITE/SOMERELATIVEPATH/favicon.ico' alt="Favicon"/>Favicon</a> 
      </body>
    </html>
    
    3. Bewaar deze HTML-code lokaal (bijvoorbeeld op uw bureaublad) als get favicon.html en dubbelklik vervolgens op om het te openen. Het toont alleen een link met de naam Favicon . Klik met de rechtermuisknop op deze link en selecteer “Doel opslaan als …” om de Favicon op te slaan op uw lokale pc – en u klaar bent!

8

In 2020, met behulp van Duckduckgo.com’s service van de CLI

curl -v https://icons.duckduckgo.com/ip2/<website>.ico > favicon.ico

Voorbeeld

curl -v https://icons.duckduckgo.com/ip2/www.cdc.gov.ico > favicon.ico

9

HttpWebRequest w = (HttpWebRequest)HttpWebRequest.Create("http://stackoverflow.com/favicon.ico");
w.AllowAutoRedirect = true;
HttpWebResponse r = (HttpWebResponse)w.GetResponse();
System.Drawing.Image ico;
using (Stream s = r.GetResponseStream())
{
    ico = System.Drawing.Image.FromStream(s);
}
ico.Save("favicon.ico");

10

De SHGetFileInfo(controleer pinvoke.net voor de handtekening) Laat je een kleine ophalen of groot pictogram, net alsof u te maken had met een bestand / map / shell-item.


11

Soms kunnen we het Favicon-afbeelding niet krijgen met de doelgerichte oplossing omdat sommige websites .png of andere beeldextensies gebruiken. Hier is de werkoplossing.

  1. Open uw website met een Firefox-browser .
  2. Klik met de rechtermuisknop op de website en klik op de pagina “Bekijk pagina info” optie uit de lijst.
  3. Hiermee wordt een dialoogvenster geopend en klikt u op “Media” Tab.
  4. Op dat tabblad ziet u alle afbeeldingen inclusief Favicon.
  5. Selecteer de afbeelding Favicon.ico of klik door de afbeeldingen om te zien welke afbeelding wordt gebruikt als Favicon. Sommige websites gebruiken ook .png-afbeeldingen.
  6. Klik vervolgens op de knop “als” en u moet goed zijn om te gaan.

Bedankt!


12

http://realfavicongerator.net/favicon_checker?site=http:// Stackoverflow.com geeft je Favicon-analyse waarin staat welke favicons aanwezig zijn in welke maat. U kunt de pagina-informatie verwerken om te zien welke de beste kwaliteit Favicon is en het bestandsnaam aan de URL toevoegen om het te krijgen.


13

U kunt get fv.co gebruiken:

Om een ​​Favicon op te halen, kunt u het hotlinkt bij … http://g.etfv.co / [URL]

Voorbeeld voor deze pagina: http://g.etfv.co/https://stackoverflow.com/questions/5119041/How-can-i-gat-a-web-sites-favicon

Download inhoud en laten we gaan!

EDIT:

get fv.co en fvicon.com kijken dood. Als u wilt, vond ik een niet-gratis alternatief: grabicon.com .


14

Gebruik jQuery

var favicon = $("link[rel='shortcut icon']").attr("href") ||
              $("link[rel='icon']").attr("href") || "";

Other episodes