وب سایت Yahoo مدتی است که API های بسیار جالبی را در زمینه های مختلف ارائه نموده است. در صورتی که علاقه مند هستید که API های مربوط به جستجوی تصاویر این سایت را بررسی نمایید می توانید به این آدرس مراجعه نمایید.
شروع:
در ابتدا فضای نامی زیر را به کلاس اضافه نمایید.
متغیر گلوبال LINK را به شکل زیر تعریف نمایید.
private const string LINK =
"http://search.yahooapis.com/ImageSearchService/V1/imageSearch?appid=YahooDemo&query={0} movie&results=1";
در قسمت زیر متدی نوشته ایم که عنوان یک فیلم را گرفته و آدرس پوستر فیلم بر می گرداند.
public static string FindMoviePoster(string title)
{
string url = string.Format(LINK, HttpUtility.UrlEncode(title));
XPathDocument xd = new XPathDocument(url);
XPathNavigator navigator = xd.CreateNavigator();
navigator.MoveToFollowing(XPathNodeType.Element);
navigator.MoveToFirstChild();
navigator.MoveToFirstChild();
do
{
if (navigator.LocalName == "Url")
{
navigator.MoveToFirstChild();
return navigator.Value;
}
} while (navigator.MoveToNext());
return null;
}
نحوه استفاده از متد بالا به شکل زیر می باشد. در قطعه کد زیر ما قصد بازیابی آدرس پوستر فیلم "گلادیاتور" را داریم.
string imageUrl=FindMoviePoster("Gladiator");
if (!string.IsNullOrEmpty(imageUrl))
{
Image1.ImageUrl = imageUrl;
}
پس از اجرای قطعه کد فوق تصویر پوستر این فیلم مانند شکل زیر نمایش داده می شود.
برای بازیابی Thumbnail ها باید به شکل زیر عمل نمود.(تنها خطی که نسبت به متد قبل تغییر نموده است را به صورت بولد مشخص نموده ایم)
public static string FindMovieThumbnail(string title)
{
string url = string.Format(LINK, HttpUtility.UrlEncode(title));
XPathDocument xd = new XPathDocument(url);
XPathNavigator navigator = xd.CreateNavigator();
navigator.MoveToFollowing(XPathNodeType.Element);
navigator.MoveToFirstChild();
navigator.MoveToFirstChild();
do
{
if (navigator.LocalName == "Thumbnail")
{
navigator.MoveToFirstChild();
return navigator.Value;
}
} while (navigator.MoveToNext());
return null;
}
قطعه کد کامل این ترفند از لینک بالای صفحه قابل دریافت می باشد.
منبع: NET slave