문제

URL로 웹 사이트의 favicon을 얻을 수 있는지 궁금합니다. JavaScript.

예를 들어 URL이 있습니다 http://www.bbc.co.uk/ 그리고 나는 다음에 설명 된 Favicon으로가는 길을 얻고 싶습니다 <link rel="icon" .../> 메타 태그 - http://www.bbc.co.uk/favicon.ico.

모든 페이지를로드하고 검색하지 않아야하는 많은 URL이 있습니다. link 태그가 생각합니다.

어떤 아이디어?

도움이 되었습니까?

해결책

이를 위해 YQL을 사용할 수 있습니다

http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20html%20where%20url%3D"http://bbc.co.uk/"and%20xpath%3D"/html/head/link[@rel%3D'icon']%20|%20/html/head/link[@rel%3D'ICON']%20|%20/html/head/link[@rel%3D'shortcut%20icon']%20|%20/html/head/link[@rel%3D'SHORTCUT%20ICON']"&format=json&callback=grab

이 쿼리가 사용했습니다 피드를 표시합니다. Favicons Greasemonkey 스크립트.

YQL 콘솔에 쿼리를 쓸 수 있지만 로그인해야합니다 (BTW, 쿼리 사용하지 않음).

http://developer.yahoo.com/yql/console/#h=select%20*%20from%20html%20where%20url%3D%22http%3A//bbc.co.uk/%22and%20xpath%3D%22/html/head/link%5B@rel%3D%27icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27ICON%27%5D%20%7C%20/html/head/link%5B@rel%3D%27shortcut%20icon%27%5D%20%7C%20/html/head/link%5B@rel%3D%27SHORTCUT%20ICON%27%5D%22

그것은보다 낫다 http://www.google.com/s2/favicons?domain=www.domain.com , Favicon이 존재하지만 domain.com/favicon.ico에 없습니다.

다른 팁

다음은 두 가지 작업 옵션이 있습니다. 100 개가 넘는 URL을 테스트했으며 각 옵션이 다른 결과를 얻었습니다. 이 솔루션은 그렇지 않습니다 JS, 하지만 JS 필요하지 않을 수 있습니다.

<!-- Free --> 
<img height="16" width="16" src='http://www.google.com/s2/favicons?domain=www.edocuments.co.uk' />
<!-- Paid -->
<img height="16" width="16" src='http://grabicon.com/edocuments.co.uk' />

갑자기 나는 무언가를 찾았다 Google Shared Stuff 호스트 이름으로 웹 사이트의 Favicon으로 이미지를 반환합니다.

http://www.google.com/s2/favicons?domain=www.domain.com

그러나 FOT BBC 사이트는 Favicon을 조금 작게 반환합니다. 비교하다:

http://www.google.com/s2/favicons?domain=www.bbc.co.uk
http://www.bbc.co.uk/favicon.ico

30.000 ~ 40.000 테스트 후에 나는 당신이 실제로 일해야 할 많은 다른 상황을 만나는 것을 알았습니다.

출발점은 물론 어딘가에있는 rel 태그 만보고 이것을 가져 오는 것입니다.

누구나이 스레드를보고 100% 완벽에 가까워 지려고 할 경우 여기에 내 (PHP) 코드를 업로드했습니다. https://plugins.svn.wordpress.org/wp-favicons/trunk/includes/server/class-http.php. 이것은 (GPL) WordPress 플러그인의 일부이며, 그 당시 요청시 표준 Google의 한계 (위에서 언급 한 바와 같이)의 여지가없는 파비콘을 검색합니다. 이 코드는 Google 코드가 더 많은 아이콘을 발견합니다. 또한 Google과 다른 사람들은 이미지 제공 업체로서 아이콘을 검색하려는 추가 반복을 단축시킵니다.

코드를 읽으면 Base64 Data Uris, 페이지가 404 페이지로 리디렉션하거나 가질 리온 시간을 리디렉션하고 이상한 HTTP 상태 코드를 검색하고 가능한 모든 HTTP 리턴 코드, 유효성을 확인 해야하는 일부 상황이 보일 것입니다. 잘못된 MIME 유형, 클라이언트 측면 새로 고침 태그, 루트 폴더의 아이콘 및 HTML 코드 등의 아이콘 등 ... 등 ... 등 ... 등 ...

디렉토리를 올라가면 다른 클래스를 찾을 수 있습니다. 그러면 실제 아이콘을 URL에 대한 실제 아이콘을 저장할 수있는 다른 클래스를 찾을 수 있습니다. 동일한 "소유자"에 속하거나 실제로 다른 부분이지만 동일한 도메인에 속합니다.

면책 조항 :이 서비스를 직접 구축했지만 시도해 볼 수 있습니다. http://grabicon.com. 파비콘을위한 매우 간단한 API입니다. 속도를 위해 많은 사전 캐싱을 사용합니다. 이와 같은 대부분의 다른 서비스와 마찬가지로 HTML에 직접 삽입 할 수 있으며 훌륭하게 작동합니다. 아직 온라인 문서가 없지만 모두가 좋아하는 웹 목적지를 사용하는 몇 가지 예입니다.

아이콘을 PNG 형식으로 가져옵니다.

http://grabicon.com/icon?domain=microsoft.com

64 픽셀 스퀘어로 크기를 조정하십시오.

http://grabicon.com/icon?domain=microsoft.com&size=64

이것은 사람들이 구현할 수있는 다양한 방법을 사용하여 아이콘을 사냥하고 favicon.ico 파일이 실제로 수집 아이콘의. 완벽한 일치가 이미 사용되지 않는 한 해당 버전을 사용하여 선호도로 크기를 조정합니다.

당신이 어떻게 생각하는지, 그리고 당신이 좋아할 다른 기능을 알려주세요!

업데이트:

Grabicon은 이제 운영 중이며 아무데도 가지 않습니다. 그것은 원래 그것을 지원하지 않기로 결정한 고객을 위해 구축되었습니다. 그러나 이제는 훨씬 더 빠른 속도와 크기 조정 기능으로 직접 치료를 받고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top