Выбирать вещи с сайта? - PullRequest
       6

Выбирать вещи с сайта?

1 голос
/ 17 января 2011

Есть ли способ, используя C # .Net, в основном использовать что-то вроде http://www.bing.com/images/search?q=microsoft&form=QBIL&qs=n&sk=&sc=8-4,, извлечь из него все изображения и поместить его в файл?

Ответы [ 2 ]

0 голосов
/ 17 января 2011

Если вы хотите сделать это немного чище, тогда используйте Bing API, это лучший способ сделать это. В ответе JSON / XML / SOAP вы получите URL для каждого изображения в результате. Вы можете получить эти изображения в цикле или, что еще лучше, в запросе LINQ.

Проверьте это PDF , в котором рассказывается, как начать работу.

Вот пример того, как вы можете это сделать. Сначала получите APPID , который позволит вам делать запросы API.

сделать запрос как этот

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;
}
0 голосов
/ 17 января 2011

Вы можете использовать HTML Agility Pack и его класс HTMLWeb для анализа веб-страницы.

...