C#.Net を使用して、基本的にhttp://www.bing.com/images/search?q=microsoft&form=QBIL&qs=n&sk=&sc=8-4のようなものを使用し、そこからすべての画像を抽出する方法はありますか?ファイルに入れますか?
2 に答える
0
少しきれいにしたい場合は、bing API を使用するのが最善の方法です。その JSON/XML/SOAP 応答では、結果の各画像への URL を取得します。これらの画像をループで取得するか、LINQ クエリでより適切に取得できます。
始めるための基本を説明するこのPDFをチェックしてください。
これを行う方法の例を次に示します。まず、API クエリを作成できるAPPID を取得します。
このようなリクエストを行います
string url = "http://api.search.live.net/xml.aspx?Appid={0}&sources={1}&query={2}";
string completeUri = String.Format(url, AppId, "image", "microsoft");
HttpWebRequest webRequest = null;
webRequest = (HttpWebRequest)WebRequest.Create(completeUri);
HttpWebResponse webResponse = null;
webResponse = (HttpWebResponse)webRequest.GetResponse();
XmlReader xmlReader = null;
xmlReader = XmlReader.Create(webResponse.GetResponseStream());
次に、返されたデータを保持するクラスを作成します。
public class LiveSearchResultImage
{
public string Title { get; set; }
public string Description { get; set; }
public string URI { get; set; }
public string ImageURI { get; set; }
public string ThumbnailURI { get; set; }
}
次に、LINQ クエリを使用して応答からデータを取得します。
XDocument data = XDocument.Load(xmlReader);
IEnumerable<XNode> nodes = null;
nodes = data.Descendants(XName.Get("Results", IMAGE_NS)).Nodes();
if (nodes.Count() > 0)
{
var results = from uris in nodes
select new LiveSearchResultImage
{
URI =
((XElement)uris).Element(XName.Get("Url", IMAGE_NS)).Value,
Title =
((XElement)uris).Element(XName.Get("Title", IMAGE_NS)).Value,
ThumbnailURI =
((XElement)uris).Element(XName.Get("Thumbnail", IMAGE_NS)).Value,
};
return results;
}
于 2011-01-17T04:47:26.497 に答える
0
HTML Agility PackとそのHTMLWebクラスを使用して、Web ページを解析できます。
于 2011-01-17T02:16:18.237 に答える