Достаточно простой вопрос: я сделал небольшое приложение, которое в основном просто избранное, которое находится в моем системном трее, поэтому я могу открывать часто используемые сайты / папки / файлы из одного и того же места. Получить значки по умолчанию из моей системы для известных типов файлов не так уж сложно, но я не знаю, как получить значок значка с веб-сайта. (ТАК имеет серый->
оранжевый значок стека в адресной строке, например).
Кто-нибудь знает, как я могу это сделать?
Я не уверен, насколько легко (или возможно) было бы автоматизировать загрузку/анализ этой страницы, но, похоже, все это есть: Favicon-Checker. По крайней мере, вы можете использовать его в качестве эталона/проверки.
Favicon Kit позволяет вам получать и вставлять значки favicon, как обычные изображения, размером намного больше 16 пикселей, если они доступны. (Раскрытие информации: я автор)
16 Answers 16
Introducing: Trending sort
Теперь вы можете выбрать сортировку по тенденциям, что увеличивает количество недавно проведенных голосов, помогая отображать более актуальные ответы.
Тенденции основаны на наивысшем результате сортировки и возвращаются к нему, если нет сообщений в трендах.
Вы захотите решить эту проблему несколькими способами:
Найдите favicon.ico в корне домена.
Найдите тег с атрибутом rel=»shortcut icon»
Ищите тег с атрибутом rel=»icon».
Последние два обычно дают изображение более высокого качества.
Чтобы охватить все основы, существуют файлы значков для конкретных устройств, которые могут обеспечить более высокое качество изображения, поскольку эти устройства обычно имеют более крупные значки на устройстве, чем требуется браузеру:
А чтобы загрузить иконку, не заботясь о том, что это за иконка, вы можете использовать такой инструмент, как http://www.google.com/s2/favicons, который сделает все возможное:
если кому-то нужна альтернатива Google, у DuckDuckGo есть другое решение: icons.duckduckgo.com/ip2/www.stackoverflow.com.ico
@JoseSerodio — Хорошо. это было первое, что я попробовал, но для домена, который я проверил, я просто получил «нечеткое / скучное» изображение стрелки, указывающей вправо (больше) внутри круга — внутри квадрата. Выглядело это так, но я проверил правильность написания «domain.com.ico». Теперь, благодаря чудесам интернета, все работает нормально. поди разберись =) так что, фигня.
обновление 2020 г.
Вот три услуги, которыми вы можете воспользоваться в 2020 году.
Еще один: favicon.allesedv.com
@saintvixalien Я полагаю, что недавно это изменилось для людей, которые не инициализируются с помощью ключа API, потому что серверы набирают вес;) Я использую основной сервис с ключом API и получаю ответы напрямую без оболочки. Я провел тест без ключа API, и он перенаправляется на службу Google, как вы сказали.
Вы можете использовать конвертер Google S2.
Да, это то, что я делаю. Для своих скриптов tampermonkey я просто меняю домен = (например, google.com/s2/favicons?domain=doodstream.com)
Рекомендуется свести к минимуму количество запросов, необходимых для каждой страницы. Так что если вам нужно несколько иконок, яндекс может сделать спрайтовые фавиконки одним запросом. Вот пример http://favicon.yandex.net/favicon/google.com/stackoverflow.com/yandex.net/
Первое, что нужно найти, это /favicon.ico в корне страницы; что-то вроде WebClient.DownloadFile() должно работать нормально. Однако вы также можете установить иконку в метаданных — для SO это:
и обратите внимание, что могут быть доступны альтернативные значки; «касание» имеет тенденцию быть больше и иметь более высокое разрешение, например:
поэтому вы должны проанализировать его в HTML Agility Pack или XmlDocument (если xhtml) и использовать WebClient.DownloadFile ()
Вот некоторый код, который я использовал, чтобы получить это через пакет гибкости:
Обратите внимание, что значок принадлежит им, а не вам.
Спасибо, Марк. Я ценю пример. Что касается изображений, я не собираюсь их изменять или использовать для чего-либо, кроме значков в контекстном меню рядом с меткой ярлыка.
Вы можете сделать это без программирования в 3 шага:
-
1. Просто откройте веб-страницу, щелкните правой кнопкой мыши и выберите «Просмотреть исходный код», чтобы открыть HTML-код этой страницы. Затем найдите «favicon» в текстовом редакторе — это направит вас к чему-то похожему на
Возьмите строку в href и добавьте ее к базовому URL-адресу веб-страницы (скажем, «http: // ВЕБ-САЙТ /»), чтобы она выглядела так:
-
2. Возьмите фиксированный URL и вставьте его в параметр href следующего кода:
-
3. Сохраните этот HTML-код локально (например, на рабочем столе) как GetFavicon.html, затем дважды щелкните его, чтобы открыть. Он будет отображать только ссылку под названием Favicon. Щелкните правой кнопкой мыши по этой ссылке и выберите «Сохранить цель как».
Этот вопрос — первый результат поиска в Google, который я получил, постоянно ища API-интерфейс favicon веб-сайта. Так что я думаю, что это все еще будет полезно в будущем.
Вы можете получить URL-адрес фавикона из HTML-кода веб-сайта.
Вот элемент фавикона:
Здесь следует использовать регулярное выражение. Если тег не найден, ищите favicon.ico в корне сайта. Если ничего не найдено, на сайте нет фавиконки.
В 2020 году с помощью сервиса duckduckgo.com от CLI
Иногда мы не можем получить изображение фавикона с преднамеренным решением, так как некоторые сайты используют .png или другие расширения изображения. Вот рабочее решение.
- Откройте свой сайт с помощью Firefox.
- Щелкните правой кнопкой мыши страницу и выберите «Просмотр информации о странице» из списка.
- Откроется диалоговое окно и щелкните вкладку «Медиа».
- В этой вкладке вы увидите все изображения, включая фавикон.
- Выберите изображение favicon.ico или щелкните изображения, чтобы увидеть, какое изображение используется в качестве значка. На некоторых страницах также используются изображения .png.
- Затем нажмите кнопку «Сохранить как», и все будет готово.
SHGetFileInfo (Проверить подпись на pinvoke.net) позволяет загрузить маленькую или большую иконку, как если бы вы имели дело с файлом/папкой/элементом оболочки.
http://realfavicongenerator.net/favicon_checker?site=http://stackoverflow.com дает вам анализ значков, указывающий, какие значки присутствуют в каком размере. Вы можете проанализировать информацию о странице, чтобы увидеть, какая из них имеет наилучшее качество, и добавить имя файла к URL-адресу, чтобы получить ее.
Загрузите контент и вперед!
Getfv.co и fvicon.com выглядят мертвыми. Если хотите, я нашел платную альтернативу: grapicon.com.
@ttony Действительно. fvicon.com тоже выглядит мертвым. Я отредактирую свой комментарий с платным контентом. если вы найдете бесплатную ссылку, пожалуйста, поделитесь ею!
Это поздний ответ, но для полноты картины: трудно даже приблизиться к загрузке 90% всех фавиконов.
Некоторое время назад я написал плагин для WordPress, который пытается приблизиться к 100%.
Вот как это работает:
Это начинается с поиска значка в существующих репозиториях значков, таких как значки Google и GetFavicons.
Если ни один из них не возвращает значок, подключаемый модуль пытается получить значок сам. Это включает в себя обход нескольких страниц в домене.
Затем подключаемый модуль проверяет файл физического образа, поскольку на некоторых серверах файлы возвращаются с неправильными типами MIME.
Код еще не идеален, так как в деталях вы найдете много странных ситуаций: у людей плохо закодированы пути, например, img / favicon.ico, где img не находится в корне, дублирующиеся заголовки в выводе HTML, разные ответы сервера с помощью head и тело и т. д.
Основная часть загружаемой части находится здесь, поэтому вы можете отменить ее, но помните, что вам необходимо выполнить проверку ответа (проверка типа файла изображения, mime и т. д.).