あるページの検索インデックスへの登録の有無
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エクスプローラ
