Jak Mogę uzyskać favicon witryny?
Proste pytanie: stworzyłem małą aplikację, która jest w zasadzie tylko ulubione, które znajduje się w moim zasobniku systemowym, dzięki czemu mogę otwierać często używane witryny / foldery/pliki z tego samego miejsca. Pobieranie domyślnych ikon z mojego systemu dla znanych typów plików nie jest strasznie skomplikowane, ale nie wiem, jak uzyskać favicon ze strony internetowej. (Tak jak na przykład ikona szarego->pomarańczowego stosu na pasku adresu)
Czy ktoś wie jak Mogę to zrobić?
15 answers
Będziesz chciał poradzić sobie z tym na kilka sposobów:
-
Poszukaj
favicon.ico
w korzeniu domenywww.domain.com/favicon.ico
-
Poszukaj znacznika
<link>
z atrybutemrel="shortcut icon"
<link rel="shortcut icon" href="/favicon.ico" />
-
Poszukaj znacznika
<link>
z atrybutemrel="icon"
<link rel="icon" href="/favicon.png" />
Te dwa ostatnie zwykle dają obraz o wyższej jakości.
Aby pokryć wszystkie bazy, istnieją pliki ikon specyficzne dla urządzenia, które może dać obrazy wyższej jakości, ponieważ urządzenia te zwykle mają większe ikony na urządzeniu niż przeglądarka musiałaby:
<link rel="apple-touch-icon" href="images/touch.png" />
<link rel="apple-touch-icon-precomposed" href="images/touch.png" />
I aby pobrać ikonę bez dbania o to, co to jest ikona, możesz użyć narzędzia takiego jak http://www.google.com/s2/favicons który wykona wszystkie ciężkie podnoszenie:
var client = new System.Net.WebClient();
client.DownloadFile(
@"http://www.google.com/s2/favicons?domain=stackoverflow.com",
"stackoverflow.com.ico");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-01-23 11:07:53
Aktualizacja 2020
Oto trzy usługi, z których możesz korzystać w 2020 roku
<img height="16" width="16" src='https://icons.duckduckgo.com/ip3/www.google.com.ico' />
<img height="16" width="16" src='http://www.google.com/s2/favicons?domain=www.google.com' />
<img height="16" width="16" src='https://api.statvoo.com/favicon/?url=google.com' />
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-02-03 15:30:53
Możesz użyć konwertera Google S2.
Http://www.google.com/s2/favicons?domain=google.com
Źródło: http://www.labnol.org/internet/get-favicon-image-of-websites-with-google/4404/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-02-19 01:24:11
Pierwszą rzeczą, której należy szukać, jest /favicon.ico w katalogu głównym witryny; coś w stylu WebClient.DownloadFile() powinno działać dobrze. Można jednak również ustawić ikonę w metadanych - tak więc jest to:
<link rel="shortcut icon"
href="http://sstatic.net/stackoverflow/img/favicon.ico">
I zauważ, że alternatywne ikony mogą być dostępne; ta "dotykowa" ma tendencję do większej i wyższej rozdzielczości, na przykład:
<link rel="apple-touch-icon"
href="http://sstatic.net/stackoverflow/img/apple-touch-icon.png">
Więc możesz to przeanalizować w HTML Agility Pack lub XmlDocument (jeśli xhtml) i użyć WebClient.DownloadFile ()
Oto kod, który użyłem do uzyskaj to za pomocą pakietu agility:
var favicon = "/favicon.ico";
var el=root.SelectSingleNode("/html/head/link[@rel='shortcut icon' and @href]");
if (el != null) favicon = el.Attributes["href"].Value;
Zauważ, że ikona należy do nich, nie do ciebie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-02-25 15:31:18
To dobra praktyka, aby zminimalizować liczbę żądań, których potrzebuje każda strona. Więc jeśli potrzebujesz kilku ikon, yandex może wykonać sprite favicons w jednym zapytaniu. Oto przykład http://favicon.yandex.net/favicon/google.com/stackoverflow.com/yandex.net/
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-11 00:51:38
Możesz uzyskać adres URL favicon z HTML strony internetowej.
Oto element favicon
:
<link rel="icon" type="image/png" href="/someimage.png" />
Powinieneś użyć tutaj wyrażenia regularnego. Jeśli nie znaleziono znacznika, poszukaj favicon.ico
w katalogu głównym witryny. Jeśli nic nie znaleziono, witryna nie ma ikony favicon.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-25 15:12:19
Możesz to zrobićbez programowania . Po prostu otwórz stronę internetową, kliknij prawym przyciskiem myszy i wybierz "Wyświetl źródło" , aby otworzyć kod HTML tej strony. Następnie w edytorze tekstu wyszukaj "favicon" - skieruje cię do czegoś wyglądającego jak
<link rel="icon" href='/SOMERELATIVEPATH/favicon.ico' type="image/x-icon" />
Weź łańcuch w href
i dołącz go do podstawowego adresu URL strony internetowej( Załóżmy, że jest to "http://WEBSITE/"
), więc wygląda tak:
http://WEBSITE/SOMERELATIVEPATH/favicon.ico
Która jest absolutną ścieżką do faviconu. Jeśli nie znalazłeś w ten sposób może być również w katalogu głównym, w którym to przypadku adres URL to http://WEBSITE/favicon.ico
.
Weź określony adres URL i wstaw go do następującego kodu:
<html>
<head>
<title>Capture Favicon</title>
</head>
<body>
<a href='http://WEBSITE/SOMERELATIVEPATH/favicon.ico' alt="Favicon"/>Favicon</a>
</body>
</html>
Zapisz ten kod HTML lokalnie (np. na pulpicie) jako GetFavicon.html
a następnie kliknij dwukrotnie, aby go otworzyć. Wyświetli tylko link o nazwie Favicon . Kliknij prawym przyciskiem myszy ten link i wybierz " Zapisz cel jako..." aby zapisać Favicon na lokalnym komputerze-i gotowe!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-02 15:32:22
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");
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-25 14:31:48
The SHGetFileInfo
(Check pinvoke.net do podpisu) pozwala pobrać małą lub dużą ikonę, tak jak gdybyś miał do czynienia z plikiem/folderem/powłoką.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-25 19:28:40
Http://realfavicongenerator.net/favicon_checker?site=http://stackoverflow.com daje Ci analizę faviconów określającą, które favicony są obecne w jakiej wielkości. Możesz przetworzyć informacje o stronie, aby zobaczyć, która jest najlepsza jakość favicon, i dołączyć nazwę pliku do adresu URL, aby ją uzyskać.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-11 08:59:59
Możesz użyć Getfv.co :
Aby pobrać favicon można go hotlinkować na... http://g.etfv.co/[URL]
Przykład dla tej strony : http://g.etfv.co/https://stackoverflow.com/questions/5119041/how-can-i-get-a-web-sites-favicon
Pobierz zawartość i chodźmy !
Edit:
Getfv.co oraz fvicon.com wygląda na martwego. Jeśli chcesz, znalazłem alternatywę non free: grabicon.com .
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:32
Używanie jquery
var favicon = $("link[rel='shortcut icon']").attr("href") ||
$("link[rel='icon']").attr("href") || "";
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2019-05-11 22:00:42
W 2020 roku, przy użyciu duckduckgo.com serwis z CLI
curl -v https://icons.duckduckgo.com/ip2/<website>.ico > favicon.ico
Przykład
curl -v https://icons.duckduckgo.com/ip2/www.cdc.gov.ico > favicon.ico
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-03-15 03:19:19
Jest to późna odpowiedź, ale dla kompletności: trudno jest nawet zbliżyć się do pobrania 90% wszystkich faviconów.
Jakiś czas temu napisałem wtyczkę do WordPressa , która próbuje zbliżyć się do 100%.
Tak to działa:
-
Zaczyna się od wyszukania istniejących repozytoriów favicon, takich jak Google favicons i GetFavicons.
-
Jeśli żadna z nich nie zwróci ikony, wtyczka spróbuje uzyskać samą ikonę. Dotyczy to przemierzanie kilku stron w domenie.
-
Wtyczka sprawdza następnie fizyczny plik obrazu, ponieważ na niektórych serwerach pliki są zwracane z nieprawidłowym typem mime.
Kod nadal nie jest doskonały, ponieważ w szczegółach znajdziesz wiele dziwnych sytuacji: ludzie mają błędnie zakodowane ścieżki, np. img/favicon.ico
gdzie {[1] } nie jest w katalogu głównym, zduplikowane nagłówki w wyjściu HTML, różne odpowiedzi serwera z głowy i ciała itp.
The core of the pobieranie części znajduje się tutaj , więc można ją inżynierować wstecznie, ale należy pamiętać, że Walidacja odpowiedzi powinna być wykonana (sprawdzanie typu pliku obrazu, mime itp.).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-11-25 17:23:29
Czasami nie możemy uzyskać obrazu favicon z zamierzonym rozwiązaniem, ponieważ niektóre strony używają.png lub inne rozszerzenia obrazów. Oto rozwiązanie robocze.
- Otwórz swoją stronę za pomocą przeglądarki firefox .
- Kliknij prawym przyciskiem myszy na stronie i kliknij opcję "Wyświetl informacje o stronie" z listy.
- otworzy okno dialogowe i kliknie kartę"Media".
- na tej karcie zobaczysz wszystkie obrazy łącznie z faviconem.
- Wybierz favicon.obraz ico lub kliknij obrazy, aby zobaczyć, który obraz jest używany jako favicon. Niektóre strony używają .również obrazy png.
- następnie kliknij na "Zapisz jako" i powinieneś być gotowy do pracy.
Dzięki!
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2021-01-13 16:06:29