あるページの検索インデックスへの登録の有無
2006-09-10-1
[YahooHacks]
今回の YahooHacks は、
「あるページがヤフーの検索インデックスへ登録されているかどうか」
を調べる方法についてです。
■■■あるページの検索インデックスへの登録の有無を調べる
あるページがヤフーの検索インデックスに登録されているかどうかを知り
たい!ということがときどきあります。
■クエリー構文「url:」
ヤフーWeb検索では、クエリー構文「url:」を使い、そのページの URL を
指定すると、インデックスに登録されているか否かを知ることができます。
登録されていれば検索結果が表示されます。
http://search.yahoo.co.jp/search?p=url:http://nais.to/~yto/clog/
「url:」を使って、URL のリストを対象にそれぞれが登録されているか
否かを Yahoo!API で判別するプログラムを作ってみました。
■コード
■Hack の実行
入力は、1行 1 URLというフォーマットの URL リストファイルです。
検索インデックスに登録されていれば "yes" が、登録されていなければ
"no" が表示されます。
■Hack をさらに Hack する
ブログの記事ページに、そのページが検索インデックスに登録されている
かが表示されていると面白いかもしれません。
ということで、登録の有無を表示する JavaScript プログラムを生成する
CGI のプロトタイプのコード (hack_url.cgi) を下記にあげておきます。
(実際に設置するときは、Yahoo! API へのアクセスをキャッシュするよう
に改造して使うことを強くお勧めします。)
ブログページ等に下記のように上記 CGI を指定する script タグを
挿入すれば登録有無結果がその場に表示されます。
参考ページ:
- Yahoo!デベロッパーネットワーク (YDN)
http://developer.yahoo.co.jp/
- [を] Perl の -T スイッチ[2006-05-27-3]
関連書籍:
- Yahoo! Hacks
- 最新WebサービスAPIエクスプローラ
「あるページがヤフーの検索インデックスへ登録されているかどうか」
を調べる方法についてです。
使用している Web API の提供が終了となったため、現在動作しません。ご了承ください。
■■■あるページの検索インデックスへの登録の有無を調べる
あるページがヤフーの検索インデックスに登録されているかどうかを知り
たい!ということがときどきあります。
■クエリー構文「url:」
ヤフーWeb検索では、クエリー構文「url:」を使い、そのページの URL を
指定すると、インデックスに登録されているか否かを知ることができます。
登録されていれば検索結果が表示されます。
http://search.yahoo.co.jp/search?p=url:http://nais.to/~yto/clog/
「url:」を使って、URL のリストを対象にそれぞれが登録されているか
否かを Yahoo!API で判別するプログラムを作ってみました。
■コード
#!/usr/bin/perl use strict; use warnings; use LWP::Simple; while (<>) { next if (/^\s*$/); print; chomp; s/([^0-9A-Za-z_])/'%'.unpack('H2',$1)/ge; my $url = "http://search.yahooapis.jp/WebSearchService/V1/". "webSearch?appid=YahooDemo&query=url:$_"; if (get_num($url)) { print "yes\n"; } else { print "no\n"; } } sub get_num { my ($url) = @_; my $yahoo_response = get($url); my ($num) = ($yahoo_response =~ /totalResultsAvailable="(\d)"/); return $num; }
■Hack の実行
入力は、1行 1 URLというフォーマットの URL リストファイルです。
検索インデックスに登録されていれば "yes" が、登録されていなければ
"no" が表示されます。
% cat url-list http://nais.to/~yto/ http://nais.to/~yto/clog/2006-01-01-1.html http://www.example.com/blog/ % ./hack_url.pl url-list http://nais.to/~yto/ yes http://nais.to/~yto/clog/2006-01-01-1.html yes http://www.example.com/blog/ no
■Hack をさらに Hack する
ブログの記事ページに、そのページが検索インデックスに登録されている
かが表示されていると面白いかもしれません。
ということで、登録の有無を表示する JavaScript プログラムを生成する
CGI のプロトタイプのコード (hack_url.cgi) を下記にあげておきます。
(実際に設置するときは、Yahoo! API へのアクセスをキャッシュするよう
に改造して使うことを強くお勧めします。)
#!/usr/bin/perl -T use strict; use warnings; use CGI; use LWP::Simple; my $q = new CGI; my $target = $q->param('url') || ""; print $q->header(-type => 'text/plain'); $target =~ s/([^0-9A-Za-z_])/'%'.unpack('H2',$1)/ge; my $url = "http://search.yahooapis.jp/WebSearchService/V1/". "webSearch?appid=YahooDemo&query=url:$target"; if (get_num($url)) { print "document.writeln('Y!');\n"; } else { print "document.writeln('-');\n"; } sub get_num { my ($url) = @_; my $yahoo_response = get($url); my ($num) = ($yahoo_response =~ /totalResultsAvailable="(\d)"/); return $num; }
ブログページ等に下記のように上記 CGI を指定する script タグを
挿入すれば登録有無結果がその場に表示されます。
<script src="hack_url.cgi?url=http://nais.to/"></script>
参考ページ:
- Yahoo!デベロッパーネットワーク (YDN)
http://developer.yahoo.co.jp/
- [を] Perl の -T スイッチ[2006-05-27-3]
関連書籍:
- Yahoo! Hacks
- 最新WebサービスAPIエクスプローラ