質問

次の URL で Web サイトのファビコンを取得できるかどうか疑問に思っています。 JavaScript.

たとえば、URLがあります http://www.bbc.co.uk/ で説明されているファビコンへのパスを取得したいと思います <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

このクエリは、ディスプレイフィードファビコンのGreasemonkeyスクリプトにで使用される。

あなたはYQLコンソールでクエリを記述することができますが、それは(クエリにはない使用して、ところで)ログインする必要があります:

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 よりも優れているが、domain.com/favicon.icoに位置していません。

他のヒント

ここで2つの作業のオプションがあり、私は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と呼ばれるものを見つけました

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

しかし、それは少し小さいファビコンを返しBBCサイトFOT。比較ます:

http://www.google.com/s2/ファビコン?ドメイン= 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 データ URI、ページの 404 ページへのリダイレクト、または数十億回のリダイレクト、奇妙な HTTP ステータス コードの取得と、考えられるすべての HTTP リターン コードの有効性チェックの必要性、間違った MIME タイプを持つアイコン自体、クライアント側の更新タグ、ルートフォルダーはなく、HTMLコードには何もありません、など...等...等...

ディレクトリを上に進むと、URL に対して実際のアイコンを保存するための他のクラスが見つかります (そしてもちろん、どの「ブランチ」が同じファビコンを使用しているか、どの「ブランチ」が同じファビコンを使用していないかを確認する必要があります)同じ「所有者」に属しているか、実際には異なる部分ですが同じドメインの下にあります。

免責事項:そのおかげでこのサービスが自分ででき http://grabicon.com.すごくシンプルなAPIえる機能を加えるサイズ変更やreformattingができます。で多くの積極的なキャッシュ速度です。他のサービス、このように挿入することができます。るこの直接HTMLで作品です。ないオンライン書類のだが、ここでは例をみんなのローカルエリアネットワーク(lan先:

Getアイコンを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