検索オプションを指定する

 検索時にいくつかのオプションを指定することができます。前項までは日本語以外のサイトの検索結果も表示されていましたが、日本語のみの検索結果を表示したい場合には、クエリーにlanguage=jaを指定します(サンプルを実行する)。
 また、何も指定しない場合には最大検索結果数は10ですが、1から50までの値を指定することができます。この場合は「results=数」をクエリーに指定します(サンプルを実行する)。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Yahoo検索 (最大表示数指定)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function YahooSearch()
{
srchStr = $("queryString").value;
num = $("findResults").value;
if (srchStr == "") return;
httpObj = createXMLHttpRequest(displayData);
if (httpObj)
{
httpObj.open("GET","yahoo.rb?query="+encodeURI(srchStr)+"&results="+num+"&cache="+(new Date()).getTime(),true);
httpObj.send(null);
}
}
function displayData()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
txt = "";
xmlData = httpObj.responseXML;
resultObj = xmlData.getElementsByTagName("Result");
titleList = xmlData.getElementsByTagName("Title");
for (i=0; i<titleList.length; i++)
{
str = titleList[i].childNodes[0].nodeValue;
sURL = resultObj[i].getElementsByTagName("ClickUrl")[0].childNodes[0].nodeValue;
txt += '<a href="'+sURL+'">'+str + "</a><br>";
}
$("result").innerHTML = txt;
}
}
// --></script>
</head>
<body>
<h1>Yahoo検索 (最大表示数指定)</h1>
<p><a href="http://developer.yahoo.co.jp/">Web Services by Yahoo! JAPAN</a></p>
<form method="get" name="ajaxForm" onsubmit="YahooSearch();return false;">
<input type="text" value="Ajax" id="queryString">
<input type="button" value="Yahoo検索" onClick="YahooSearch()">
<select id="findResults">
<option value="10">10個まで表示</option>
<option value="20">20個まで表示</option>
<option value="30">30個まで表示</option>
<option value="40">40個まで表示</option>
<option value="50">50個まで表示</option>
</select>
</form>
<div id="result"></div>
</body>
</html>

 検索結果が大量にある場合、何番目の検索結果から返すかどうかも指定することができます。検索結果の位置は「start=位置」で指定しクエリーと一緒に送信します(サンプルを実行する。検索結果と検索位置を同時指定できるサンプルを実行する)。
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Yahoo検索 (開始位置指定)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function YahooSearch()
{
srchStr = $("queryString").value;
st = $("startPoint").value;
if (srchStr == "") return;
httpObj = createXMLHttpRequest(displayData);
if (httpObj)
{
httpObj.open("GET","yahoo.rb?query="+encodeURI(srchStr)+"&start="+st+"&cache="+(new Date()).getTime(),true);
httpObj.send(null);
}
}
function displayData()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
txt = "";
xmlData = httpObj.responseXML;
resultObj = xmlData.getElementsByTagName("Result");
titleList = xmlData.getElementsByTagName("Title");
for (i=0; i<titleList.length; i++)
{
str = titleList[i].childNodes[0].nodeValue;
sURL = resultObj[i].getElementsByTagName("ClickUrl")[0].childNodes[0].nodeValue;
txt += '<a href="'+sURL+'">'+str + "</a><br>";
}
$("result").innerHTML = txt;
}
}
// --></script>
</head>
<body>
<h1>Yahoo検索 (開始位置指定)</h1>
<p><a href="http://developer.yahoo.co.jp/">Web Services by Yahoo! JAPAN</a></p>
<form method="get" name="ajaxForm" onsubmit="YahooSearch();return false;">
<input type="text" value="Ajax" id="queryString">
<input type="button" value="Yahoo検索" onClick="YahooSearch()">
<select id="startPoint">
<option value="1">1から表示</option>
<option value="10">10から表示</option>
<option value="20">20から表示</option>
<option value="30">30から表示</option>
<option value="40">40から表示</option>
<option value="50">50から表示</option>
<option value="100">100から表示</option>
<option value="200">200から表示</option>
</select>
</form>
<div id="result"></div>
</body>
</html>

 また、検索オプションにはファイルの種類を指定することもできます。これは以下のものを「format=種類」に指定しクエリーとして送信します。(サンプルを実行する

any全て
htmlHTML文書
mswordマイクロソフトワード
pdfPDF
pptパワーポイント
rssRSS
txtプレーンテキスト
xlsエクセル

<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8">
<title>Yahoo検索 (データ形式指定)</title>
<link rel="stylesheet" href="main.css" type="text/css" media="all">
<script type="text/javascript" src="xmlhttp.js"></script>
<script type="text/javascript"><!--
function YahooSearch()
{
srchStr = $("queryString").value;
fm = $("format").value;
if (srchStr == "") return;
httpObj = createXMLHttpRequest(displayData);
if (httpObj)
{
httpObj.open("GET","yahoo.rb?query="+encodeURI(srchStr)+"&format="+fm+"&cache="+(new Date()).getTime(),true);
httpObj.send(null);
}
}
function displayData()
{
if ((httpObj.readyState == 4) && (httpObj.status == 200))
{
txt = "";
xmlData = httpObj.responseXML;
resultObj = xmlData.getElementsByTagName("Result");
titleList = xmlData.getElementsByTagName("Title");
for (i=0; i<titleList.length; i++)
{
str = titleList[i].childNodes[0].nodeValue;
sURL = resultObj[i].getElementsByTagName("ClickUrl")[0].childNodes[0].nodeValue;
txt += '<a href="'+sURL+'">'+str + "</a><br>";
}
$("result").innerHTML = txt;
}
}
// --></script>
</head>
<body>
<h1>Yahoo検索 (データ形式指定)</h1>
<p><a href="http://developer.yahoo.co.jp/">Web Services by Yahoo! JAPAN</a></p>
<form method="get" name="ajaxForm" onsubmit="YahooSearch();return false;">
<input type="text" value="Ajax" id="queryString">
<input type="button" value="Yahoo検索" onClick="YahooSearch()">
対象形式:<select id="format">
<option value="any">全て</option>
<option value="html">HTML文書</option>
<option value="msword">マイクロソフトワード</option>
<option value="pdf">PDF</option>
<option value="ppt">パワーポイント</option>
<option value="rss">RSS</option>
<option value="txt">プレーンテキスト</option>
<option value="xls">エクセル</option>
</select>
</form>
<div id="result"></div>
</body>
</html>

 Yhaoo検索にはWeb検索以外に画像検索と動画検索も用意されています。次項では画像検索を行ってみます。

[第九章 4:画像検索を行うへ]
[目次へ]

(2006.1.26)