ページ 11

検索結果件数

Posted: 2008年10月21日(火) 01:57
by 初心者
Yahooを用いて検索語を入力した場合に検索結果の件数のみを表示させるプログラムを作りたいのですが何をどうすれば良いのか全く分かりません。どうにか教えて頂けないでしょうか。よろしくお願いします。

Re:検索結果件数

Posted: 2008年10月21日(火) 10:26
by YuO
Yahooが専用のAPIを用意しています。

http://developer.yahoo.co.jp/search/
http://developer.yahoo.co.jp/search/web ... earch.html
を使って,ResultSet/@totalResultsAvailableを取り出せば目的の物が得られると思います。

Re:検索結果件数

Posted: 2008年10月22日(水) 00:22
by 初心者
ありがとうございます。YahooのAPIについて調べ

#!/usr/bin/perl
use LWP::Simple;

my $key = '検索文字列'; # UTF-8
$key =~ s/([^0-9A-Za-z_ ])/'%'.unpack('H2',$1)/ge;
my ($hit) = ($c ="http://api.search.yahoo.com/WebSearchService/V1/webSearch/totalResultsAvailable="(\d+)"/);

を作ってみたのですがこれでよろしいのでしょうか?
明日までに作成しなければならないのですがどなたか教えて頂けないでしょうか?

Re:検索結果件数

Posted: 2008年10月22日(水) 12:24
by YuO
Perlはわからないのですが,間違っていることは断言出来ます。
実際に実行してみればわかることでしょうけれど……。

まずは,サンプルリクエストURLをそのまま投げて,レスポンスを取得するところから始めてください。
リクエストが成功していればそのレスポンスはXMLなので,XML解析エンジンに結果を放り込んでXPath : /ResultSet/@totalResultsAvailableを取得します。
# 先頭の/を忘れていました
それで,検索結果の件数が取得出来ます。
現時点だと,384000000になりました。

次に,アプリケーションIDを取得して,YahooDemoの部分を取得したIDに変更します。
再度流して実際の検索結果 (沖縄) と比べます。
# 実際の検索結果では383000000だったので,実際には若干の誤差がある模様。

最後に,query部分を可変にすればできあがりです。