간단한 질문 : 기본적으로 시스템 트레이에있는 즐겨 찾기에 불과한 작은 앱을 만들어 자주 사용하는 사이트 / 폴더 / 파일을 같은 위치에서 열 수 있습니다. 내 시스템에서 알려진 파일 유형에 대한 기본 아이콘을 가져 오는 것은 그리 복잡하지 않지만 웹 사이트에서 파비콘을 가져 오는 방법을 모릅니다. (예를 들어 주소 표시 줄에 회색-> 주황색 스택 아이콘이 있습니다)
내가 그것에 대해 어떻게 할 수 있는지 아는 사람이 있습니까?
답변
이 문제를 몇 가지 방법으로 해결해야합니다.
-
favicon.ico
도메인의 루트를 찾으십시오.www.domain.com/favicon.ico
-
속성이 있는
<link>
태그 찾기rel="shortcut icon"
<link rel="shortcut icon" href="https://stackoverflow.com/favicon.ico" />
-
속성이 있는
<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");
답변
업데이트 된 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' />
답변
Google S2 변환기를 사용할 수 있습니다.
http://www.google.com/s2/favicons?domain=google.com
출처 : http://www.labnol.org/internet/get-favicon-image-of-websites-with-google/4404/
답변
가장 먼저 찾아야 할 것은 사이트 루트의 /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;
아이콘은 귀하의 것이 아니라 그들의 것입니다.
답변
각 페이지에 필요한 요청 수를 최소화하는 것이 좋습니다. 따라서 여러 아이콘이 필요한 경우 yandex는 하나의 쿼리에서 파비콘 스프라이트를 수행 할 수 있습니다. 다음은 http://favicon.yandex.net/favicon/google.com/stackoverflow.com/yandex.net/ 의 예입니다.
답변
웹 사이트의 HTML에서 파비콘 URL을 얻을 수 있습니다.
다음은 favicon 태그입니다.
<link rel="icon" type="image/png" href="/someimage.png" />
여기서 정규식을 사용해야합니다. 태그가 없으면 사이트 루트 디렉터리에서 “favicon.ico”를 찾습니다. 아무것도 발견되지 않으면 사이트에 파비콘이없는 것입니다.
답변
프로그래밍없이 할 수 있습니다 . 웹 사이트를 열고 마우스 오른쪽 버튼을 클릭 한 다음 “소스보기” 를 선택 하여 해당 사이트의 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을 저장하면됩니다.