- 追加された行はこの色です。
- 削除された行はこの色です。
*Yahoo!検索Webサービス ウェブ検索のサンプルコード(C# ) [#y2f49ded]
#code(csharp){{
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Button1_Click(object sender, EventArgs e)
{
//URLを構築する
string requestUrl =
"http://api.search.yahoo.co.jp/WebSearchService/V1/webSearch";
//アプリケーションIDを指定(必ず指定すること)
requestUrl += "?appid=dobon.net";
//検索クエリー。UTF-8エンコードする。
requestUrl += "&query=" + Server.UrlEncode(TextBox1.Text);
//検索の種類
if (searchType.SelectedValue != "" && searchType.SelectedValue != "all")
requestUrl += "&type=" + searchType.SelectedValue;
//表示件数
if (resultsCount.SelectedValue != "" && resultsCount.SelectedValue != "10")
requestUrl += "&results=" + resultsCount.SelectedValue;
//開始位置
//requestUrl += "&start=" + "1";
//検索するファイルの種類
if (fileFormat.SelectedValue != "" && fileFormat.SelectedValue != "any")
requestUrl += "&format=" + fileFormat.SelectedValue;
//アダルトコンテンツを含める
if (adultOk.Checked)
requestUrl += "&adult_ok=1";
//同じコンテンツを別の検索結果として表示する
if (similarOk.Checked)
requestUrl += "&similar_ok=1";
//日本語のページのみ検索する(デフォルトでjaとあるのだが...)
if (englishOnly.Checked)
requestUrl += "&language=ja";
//日本のサイトのみ検索する
if (japanOnly.Checked)
requestUrl += "&country=jp";
//検索するドメインを指定する
if (searchDomain.Text != "")
requestUrl += "&site=" + Server.UrlEncode(searchDomain.Text);
//HttpWebRequestの作成
System.Net.HttpWebRequest request =
(System.Net.HttpWebRequest)System.Net.WebRequest.Create(
requestUrl);
System.Net.HttpWebResponse response = null;
Yahoo.jp.WebSearchResponse.ResultSet res;
try
{
//レスポンスの取得
response = (System.Net.HttpWebResponse)request.GetResponse();
System.IO.Stream strm = response.GetResponseStream();
//サーバーから返されたXMLデータを解析
System.Xml.Serialization.XmlSerializer serializer =
new System.Xml.Serialization.XmlSerializer(
typeof(Yahoo.jp.WebSearchResponse.ResultSet));
res = (Yahoo.jp.WebSearchResponse.ResultSet)
serializer.Deserialize(strm);
}
catch (Exception ex)
{
Label1.Text = "エラー:" + Server.HtmlEncode(ex.Message);
return;
}
finally
{
if (response != null)
response.Close();
}
//結果を表示
Label1.Text = "";
if (res.totalResultsReturned == "0")
{
Label1.Text += "該当するページが見つかりませんでした。";
}
else
{
Label1.Text += "<b>" + Server.HtmlEncode(TextBox1.Text) +
"</b> の検索結果 約 " +
res.totalResultsAvailable + "件中 " +
res.firstResultPosition + " - " +
res.totalResultsReturned + " 件目<br />\n";
//検索されたページを列挙
if (res.Result != null)
{
Label1.Text += "<ul>\n";
foreach (Yahoo.jp.WebSearchResponse.ResultType item in res.Result)
{
//リンク
Label1.Text += "<li><a href=\"" + item.ClickUrl + "\">" +
item.Title + "</a>";
//要約
if (item.Summary != null && item.Summary.Length > 0)
Label1.Text += "<br />" + item.Summary;
//URL
Label1.Text += "<br /><small>" + item.Url;
//キャッシュ情報
if (item.Cache != null)
{
Label1.Text += " - " + item.Cache.Size + "byte";
Label1.Text += " - <a href=\"" + item.Cache.Url +
"\">キャッシュ</a>";
}
//更新日
if (item.ModificationDate != null &&
item.ModificationDate.Length > 0)
{
//UNIXタイムスタンプをDateTimeに変換
DateTime dt = new DateTime(1970, 1, 1);
dt = dt.AddSeconds(double.Parse(item.ModificationDate));
Label1.Text += " - " + dt.ToShortDateString();
}
//MIMEタイプ
if (item.MimeType != null &&
item.MimeType.Length > 0)
Label1.Text += " - " + item.MimeType;
Label1.Text += "</small>\n";
}
Label1.Text += "</ul>\n";
}
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Yahoo!ウェブ検索Webサービスのサンプル</title>
</head>
<body>
<form id="form1" runat="server">
<div>
キーワード :
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click"
Text="ウェブ検索" /><br />
キーワードを<asp:CheckBoxList ID="searchType" runat="server"
RepeatDirection="Horizontal"
RepeatLayout="Flow">
<asp:ListItem Selected="True" Value="all">すべて含む</asp:ListItem>
<asp:ListItem Value="any">少なくとも1つ含む</asp:ListItem>
<asp:ListItem Value="phrase">文章として含む</asp:ListItem>
</asp:CheckBoxList><br />
表示件数 :
<asp:DropDownList ID="resultsCount" runat="server">
<asp:ListItem Value="10">10件</asp:ListItem>
<asp:ListItem Value="25">25件</asp:ListItem>
<asp:ListItem Value="50">50件</asp:ListItem>
</asp:DropDownList><br />
ファイル形式 :
<asp:DropDownList ID="fileFormat" runat="server">
<asp:ListItem Value="any">すべてのファイル形式</asp:ListItem>
<asp:ListItem Value="html">HTML (.htm, .html)</asp:ListItem>
<asp:ListItem Value="pdf">Adobe PDF (.pdf)</asp:ListItem>
<asp:ListItem Value="xls">Microsoft Excel (.xls)</asp:ListItem>
<asp:ListItem Value="ppd">Microsoft Power Point (.ppd)</asp:ListItem>
<asp:ListItem Value="msword">Microsoft Word (.doc)</asp:ListItem>
<asp:ListItem Value="rss">RSS/XML (.xml)</asp:ListItem>
<asp:ListItem Value="txt">テキストフォーマット (.txt)</asp:ListItem>
</asp:DropDownList><br />
<asp:CheckBox ID="adultOk" runat="server"
Text="アダルトコンテンツを含める" /><br />
<asp:CheckBox ID="similarOk" runat="server"
Text="類似の結果を含める" /><br />
<asp:CheckBox ID="englishOnly" runat="server"
Text="日本語のページのみ" /><br />
<asp:CheckBox ID="japanOnly" runat="server"
Text="日本にあるウェブサイトのみ" /><br />
ドメイン :
<asp:TextBox ID="searchDomain" runat="server">
</asp:TextBox><br />
<br />
<asp:Label ID="Label1" runat="server" EnableViewState="False">
</asp:Label>
</div>
</form>
<!-- Begin Yahoo! JAPAN Web Services Attribution Snippet -->
<span style="margin:15px 15px 15px 15px">
<a href="http://developer.yahoo.co.jp/about">Webサービス by Yahoo! JAPAN</a>
</span>
<!-- End Yahoo! JAPAN Web Services Attribution Snippet -->
</body>
</html>
}}
//これより下は編集しないでください
#pageinfo(,2006-09-09 (土) 02:56:50,DOBON!,2006-09-09 (土) 02:56:50,DOBON!)