웹 사이트의 파비콘은 어떻게 구할 수 있습니까?


115

간단한 질문 : 기본적으로 시스템 트레이에있는 즐겨 찾기에 불과한 작은 앱을 만들어 자주 사용하는 사이트 / 폴더 / 파일을 같은 위치에서 열 수 있습니다. 내 시스템에서 알려진 파일 유형에 대한 기본 아이콘을 가져 오는 것은 그리 복잡하지 않지만 웹 사이트에서 파비콘을 가져 오는 방법을 모릅니다. (예를 들어 주소 표시 줄에 회색-> 주황색 스택 아이콘이 있습니다)

내가 그것에 대해 어떻게 할 수 있는지 아는 사람이 있습니까?


1
이 페이지의 로딩 / 파싱을 자동화하는 것이 얼마나 쉬운 지 (또는 가능한지) 모르겠지만 모든 것이있는 것 같습니다 : Favicon-Checker . 최소한 참조 / 수표로 사용할 수 있습니다.
Kevin Fegan

Statvoo Favicon API를 사용하면 매우 빠르고 고통스럽지 않습니다.
AO_

Favicon Kit를 사용 하면 가능한 경우 16 픽셀보다 훨씬 큰 크기의 일반 이미지와 같은 파비콘을 가져오고 포함 할 수 있습니다. (공개 : 나는 저자입니다)
AndreasPizsa

답변:


234

이 문제를 몇 가지 방법으로 해결해야합니다.

  1. favicon.ico도메인의 루트를 찾으십시오.

    www.domain.com/favicon.ico

  2. 속성이 있는 <link>태그 찾기rel="shortcut icon"

    <link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico" />

  3. 속성이 있는 <link>태그 찾기rel="icon"

    <link rel="icon" href="https://stackoverflow.com/favicon.png" />

후자의 두 가지는 일반적으로 더 높은 품질의 이미지를 생성합니다.


이러한 장치는 일반적으로 브라우저가 필요로하는 것보다 더 큰 아이콘을 장치에 가지고 있기 때문에 모든 기본을 커버하기 위해 더 높은 품질의 이미지를 생성 할 수있는 장치 별 아이콘 파일이 있습니다.

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

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


아이콘이 무엇인지 신경 쓰지 않고 아이콘을 다운로드하려면 http://www.google.com/s2/favicons 와 같은 유틸리티를 사용하여 모든 작업을 수행 할 수 있습니다 .

var client = new System.Net.WebClient();

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

1
GetFavIcon은 여전히 ​​작동합니까? 예제를 실행하면 400 오류가 발생합니다
Julien

17
Google에 유사한 서비스가있는 것 같습니다. google.com/s2/favicons?domain_url=stackoverflow.com
hunter

20
누군가가 구글에 대한 대안을 원한다면, 덕 덕고 다른 솔루션을 제공 : icons.duckduckgo.com/ip2/www.stackoverflow.com.ico을
호세 Serodio

1
@hunter google.com/s2/favicons16x16의 아이콘입니다. 끔찍한 아이콘입니다. 더 큰 아이콘을 어디에서 가져갈 지 알고 있습니까?
nideba

1
@JoseSerodio-글쎄요 ... 그게 제가 제일 먼저 시도한 일 이었지만, 제가 확인하고 있던 도메인의 경우 사각형 안에 원 안에 오른쪽을 가리키는 화살표 (보다 큼)의 "어둡거나 둔한"이미지를 얻었습니다. . 이렇게 보였지만 "domain.com.ico"의 철자가 올바른지 확인했습니다. 이제 인터넷의 경이로 인해 제대로 작동하고 있습니다. 그림으로 이동 =) 그러니 신경 쓰지 마세요.
Kevin Fegan

19

업데이트 된 2020

2020 년부터 사용할 수있는 세 가지 서비스는 다음과 같습니다.

<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' />

4
grabicon.com은 이제 월 $ 9부터 시작하는 유료 서비스입니다
janot

1
다른 하나 : favicon.allesedv.com <img width = "144"height = "144"src = "// f3.allesedv.com/144/www.stackoverflow.com"/>
Martin Seitl

이 서비스는 더 이상 작동하지 않으며 api.statvoo.com/favicon/?url=stackoverflow.com 을 사용할 수 있습니다 . 나는 그것을 몇 년 동안 사용해 왔고 결코 실망시키지 않았습니다.
AO_

감사합니다 @AO_, IM은 실제로 duckduckgo를 사용하고 있습니다.
저는

1
@saintvixalien 최근에 API 키로 초기화하지 않는 사람들을 위해 이것이 변경되었다고 생각합니다. 서버가 두드려지면서;) API 키로 기본 서비스를 사용하고 래퍼없이 직접 응답을받습니다. API 키없이 테스트를
했는데


6

가장 먼저 찾아야 할 것은 사이트 루트의 /favicon.ico입니다. WebClient.DownloadFile ()과 같은 것이 잘 작동합니다. 그러나 메타 데이터에서 아이콘을 설정할 수도 있습니다.

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

대체 아이콘을 사용할 수 있습니다. "터치"는 더 크고 더 높은 해상도 인 경향이 있습니다. 예를 들면 다음과 같습니다.

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

따라서 HTML Agility Pack 또는 XmlDocument (xhtml 인 경우)에서이를 구문 분석하고 WebClient.DownloadFile ()을 사용합니다.

다음은 민첩성 팩을 통해이를 얻기 위해 사용한 몇 가지 코드입니다.

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

아이콘은 귀하의 것이 아니라 그들의 것입니다.


1
감사합니다 마크. 예를 들어 감사합니다. 이미지를 수정하거나 바로 가기 레이블 옆의 컨텍스트 메뉴에있는 아이콘 이외의 다른 용도로 사용하지 않습니다.
Steven Evers


3

웹 사이트의 HTML에서 파비콘 URL을 얻을 수 있습니다.

다음은 favicon 태그입니다.

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

여기서 정규식을 사용해야합니다. 태그가 없으면 사이트 루트 디렉터리에서 "favicon.ico"를 찾습니다. 아무것도 발견되지 않으면 사이트에 파비콘이없는 것입니다.


2

프로그래밍없이 할 수 있습니다 . 웹 사이트를 열고 마우스 오른쪽 버튼을 클릭 한 다음 "소스보기" 를 선택 하여 해당 사이트의 HTML 코드를 엽니 다. 그런 다음 텍스트 편집기에서 "favicon"을 검색 하면 다음과 같은 항목으로 이동합니다.

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

문자열을 가져 와서 href웹 사이트의 기본 URL에 추가합니다 (라고 가정 해 보겠습니다 "http://WEBSITE/").

http://WEBSITE/SOMERELATIVEPATH/favicon.ico

파비콘의 절대 경로입니다. 이 방법으로 찾지 못한 경우 URL이 다음과 같은 경우 루트에있을 수도 있습니다.http://WEBSITE/favicon.ico .

결정한 URL을 다음 코드에 삽입합니다.

<html>
  <head>
   <title>Capture Favicon</title>   
  </head>
  <body>
    <a href='http://WEBSITE/SOMERELATIVEPATH/favicon.ico' alt="Favicon"/>Favicon</a> 
  </body>
</html>

이 HTML 코드를 로컬 (예 : 데스크탑)에 저장 GetFavicon.html한 다음 두 번 클릭하여 엽니 다. Favicon 이라는 링크 만 표시됩니다 . 이 링크를 마우스 오른쪽 버튼으로 클릭하고 "다른 이름으로 대상 저장 ..." 을 선택 하여 로컬 PC에 Favicon을 저장하면됩니다.


1
        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");

1

이것은 늦은 답변이지만 완전성을 위해 모든 파비콘을 가져 오는 것의 90 %에 가까워지기는 매우 어렵습니다.

얼마 전에 WordPress 플러그인을 작성했습니다. http://wordpress.org/extend/plugins/wp-favicons/ 시도가 가까이하기.

ㅏ. Google favicons, getfavicons 등과 같은 favicon 저장소를 살펴 보는 것으로 시작합니다.

비. 그들 중 아무도 아이콘을 반환하지 않으면 (나는 그들이 반환하는 기본 아이콘과 일치하여 이것을 확인합니다) 나는 아이콘을 직접 얻으려고 시도합니다.

씨. 여기에는 페이지를 순회하는 것뿐만 아니라 자동 리디렉션이없는 리디렉션을 확인하고 404를 순회하는 것도 포함됩니다. 404에도 아이콘이있을 수 있기 때문입니다. 결국 그것은 100 %에 가까워 지려면 자바 스크립트 리디렉션뿐만 아니라 html 헤더의 리디렉션도 구문 분석해야 함을 의미합니다.

디. 그 후 물리적 이미지 파일에 대한 검사를 수행합니다. 때로는 일부 서버 (내가 300.000+ 테스트)에서 잘못된 MIME 유형 등으로 파일이 반환되기 때문입니다.

코드는 여전히 완벽하지 않습니다. 세부 사항에서 미친 듯이 많은 이상한 상황을 발견 할 수 있습니다. 사람들이 잘못 코딩 된 경로 (img / favicon.ico, img가 루트에없는 경우), html 출력의 중복 헤더, 다른 서버 응답 머리와 몸 등에서 ...

가져 오는 부분의 핵심은 http://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php 이므로 리버스 엔지니어링 할 수 있지만 응답의 유효성을 검사해야합니다. 정말로 완료됩니다 (이미지 파일 유형, MIME 등 확인).


1

'SHGetFileInfo'(서명은 'www.pinvoke.net'에서 확인)를 사용하면 파일 / 폴더 / 셸 항목을 처리하는 것처럼 작거나 큰 아이콘을 검색 할 수 있습니다.

Jens;)



0

Getfv.co 를 사용할 수 있습니다 .

파비콘을 검색하려면 다음에서 핫 링크 할 수 있습니다. http://g.etfv.co/[URL]

이 페이지의 예 : http://g.etfv.co//programming/5119041/how-can-i-get-a-web-sites-favicon

콘텐츠를 다운로드하고 가자!

편집하다 :

Getfv.co와 fvicon.com은 죽은 것처럼 보입니다. 원한다면 무료가 아닌 대안을 찾았습니다 : grabicon.com .


1
링크가
끊어짐

@tttony 실제로. fvicon.com도 죽은 것처럼 보입니다. 유료 콘텐츠로 댓글을 수정하겠습니다. 작동하는 무료 링크를 찾으면 공유하십시오!
codidact.com로 이동 aloisdg

0

jquery 사용

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

0

2020 년 CLI에서 duckduckgo.com 서비스 사용

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

curl -v https://icons.duckduckgo.com/ip2/www.cdc.gov.ico > favicon.ico
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.