Dość proste pytanie: stworzyłem małą aplikację, która jest w zasadzie tylko ulubionymi, która 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 pobrać favicon ze strony internetowej. (SO ma na przykład szarą-> pomarańczową ikonę stosu na pasku adresu)
Czy ktoś wie, jak mogę się do tego zabrać?
Odpowiedzi:
Będziesz chciał rozwiązać ten problem na kilka sposobów:
Poszukaj
favicon.ico
w katalogu głównym domenywww.domain.com/favicon.ico
Poszukaj
<link>
tagu zrel="shortcut icon"
atrybutem<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico" />
Poszukaj
<link>
tagu zrel="icon"
atrybutem<link rel="icon" href="https://stackoverflow.com/favicon.png" />
Te dwa ostatnie zwykle dają obraz o wyższej jakości.
Aby objąć wszystkie podstawy, istnieją pliki ikon dla konkretnego urządzenia, które mogą dawać obrazy o wyższej jakości, ponieważ te urządzenia mają zwykle większe ikony na urządzeniu, niż potrzebuje przeglądarka:
<link rel="apple-touch-icon" href="images/touch.png" />
<link rel="apple-touch-icon-precomposed" href="images/touch.png" />
Aby pobrać ikonę bez dbania o to, co to za ikona, możesz użyć narzędzia takiego jak http://www.google.com/s2/favicons, które wykona wszystkie ciężkie czynności:
źródło
google.com/s2/favicons
to ikona z 16x16 to okropna ikona. Czy wiesz, gdzie wziąć większą ikonę?Zaktualizowano 2020
Oto trzy usługi, z których możesz korzystać w 2020 roku
źródło
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/
źródło
Pierwszą rzeczą, której należy szukać, jest /favicon.ico w katalogu głównym witryny; coś takiego jak WebClient.DownloadFile () powinno wystarczyć. Możesz jednak ustawić ikonę również w metadanych - w przypadku SO jest to:
i pamiętaj, że mogą być dostępne alternatywne ikony; „dotykowy” ma tendencję do bycia większym i wyższą rozdzielczością, na przykład:
więc przeanalizowałbyś to w HTML Agility Pack lub XmlDocument (jeśli xhtml) i użył WebClient.DownloadFile ()
Oto kod, którego użyłem, aby uzyskać to za pośrednictwem pakietu agility:
Zauważ, że ikona należy do nich, a nie do Ciebie.
źródło
Dobrą praktyką jest zminimalizowanie liczby żądań, których potrzebuje każda strona. Więc jeśli potrzebujesz kilku ikon, Yandex może zrobić sprite z faviconów w jednym zapytaniu. Oto przykład http://favicon.yandex.net/favicon/google.com/stackoverflow.com/yandex.net/
źródło
Możesz uzyskać adres URL favicon z kodu HTML witryny.
Oto tag favicon:
Powinieneś tutaj użyć wyrażenia regularnego. Jeśli nie znaleziono tagu, poszukaj „favicon.ico” w katalogu głównym witryny. Jeśli nic nie zostało znalezione, witryna nie ma ikony ulubionych.
źródło
Możesz to zrobić bez programowania . Wystarczy otworzyć witrynę internetową, kliknąć prawym przyciskiem myszy i wybrać opcję „Wyświetl źródło”, aby otworzyć kod HTML tej witryny. Następnie w edytorze tekstu wyszukaj „favicon” - skieruje Cię do czegoś podobnego
weź ciąg
href
i dołącz go do podstawowego adresu URL witryny internetowej (załóżmy, że tak jest"http://WEBSITE/"
), tak to wyglądaktóra jest absolutną ścieżką do favicon. Jeśli nie znalazłeś tego w ten sposób, może również znajdować się w katalogu głównym, w którym to przypadku jest to adres URL
http://WEBSITE/favicon.ico
.Weź podany adres URL i wstaw go do następującego kodu:
Zapisz ten kod HTML lokalnie (np. Na pulpicie) jako,
GetFavicon.html
a następnie kliknij go dwukrotnie, aby go otworzyć. Wyświetli tylko link o nazwie Favicon . Kliknij prawym przyciskiem myszy to łącze i wybierz „Zapisz element docelowy jako…”, aby zapisać ikonę Favicon na lokalnym komputerze - i gotowe!źródło
źródło
To późna odpowiedź, ale dla kompletności: dość trudno jest nawet zbliżyć się do 90% pobrania wszystkich faviconów.
Jakiś czas temu napisałem wtyczkę do WordPressa: http://wordpress.org/extend/plugins/wp-favicons/, która próbuje się zbliżyć.
za. zaczyna się od przejrzenia repozytoriów favicon, takich jak favicony google, getfavicons itp.
b. jeśli żaden z nich nie zwraca ikony (sprawdzam to, dopasowując do domyślnej ikony, którą zwracają), zaczynam od próby samodzielnego uzyskania ikony
do. Obejmuje to przechodzenie przez strony, ale także sprawdzanie przekierowań bez automatycznego przekierowania, a także przechodzenie z błędami 404, ponieważ również na błędach 404 może być obecna ikona. W końcu oznacza to, że będziesz musiał przeanalizować również przekierowania w nagłówku html, a także przekierowania javascript, aby zbliżyć się do 100%
re. potem przeprowadzam inspekcje fizycznego pliku obrazu, ponieważ czasami na niektórych serwerach (testowałem ponad 300 000) pliki są zwracane z nieprawidłowym typem MIME itp.
Kod nadal nie jest doskonały, ponieważ w szczegółach robi się szalony, znajdziesz wiele dziwnych sytuacji: ludzie mają źle zakodowane ścieżki (img / favicon.ico, gdzie img NIE jest w katalogu głównym), zduplikowane nagłówki w wyjściu html, różne odpowiedzi serwera z głowy i ciała itp ...
rdzeń części pobierającej znajduje się tutaj: http://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php, więc możesz ją odtworzyć, ale pamiętaj, że weryfikacja odpowiedzi powinna naprawdę gotowe (sprawdzanie typu pliku obrazu, mime itp.)
źródło
Zauważyłem, że „SHGetFileInfo” (sprawdź „www.pinvoke.net” pod kątem podpisu) umożliwia pobranie małej lub dużej ikony, tak jakbyś miał do czynienia z plikiem / folderem / elementem powłoki.
Jens;)
źródło
http://realfavicongenerator.net/favicon_checker?site=http://stackoverflow.com zawiera analizę favicon określającą, które favicon są obecne w jakim rozmiarze. Możesz przetworzyć informacje o stronie, aby zobaczyć, która favikona jest najlepszej jakości, i dołączyć jej nazwę do adresu URL, aby ją uzyskać.
źródło
Możesz użyć Getfv.co :
Przykład dla tej strony: http://g.etfv.co//programming/5119041/how-can-i-get-a-web-sites-favicon
Pobierz zawartość i chodźmy!
Edytować :
Getfv.co i fvicon.com wyglądają na martwe. Jeśli chcesz, znalazłem płatną alternatywę: grabicon.com .
źródło
Korzystanie z jquery
źródło
W 2020 roku, korzystając z usługi duckduckgo.com z poziomu CLI
Przykład
źródło