C # HttpWebRequest не работает с изображениями Bing - PullRequest
0 голосов
/ 07 мая 2018

Я пытаюсь получить тот же HTTP-ответ с кодом C #, что и с браузером.Я получаю много картинок, когда ищу в «браузере механические расчеты» с помощью своего браузера, но когда я удаляю «bing» файлы cookie просмотра и загружаю HTTP-ответ с кодом C #, я получаю ноль результатов.Кто-нибудь знает, как получить тот же результат Bing Images с кодом C #, что и в браузере?API поиска Bing недоступен.

        private void button1_Click(object sender, EventArgs e)
    {
        string search = "plate for mechanical calculation";
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://www.bing.com/images/search?q=" + search + "&qft=+filterui:license-L1&FORM=IRFLTR");

        request.AllowAutoRedirect = false;
        request.UserAgent = ".NET Framework ";
        request.Accept = "*/*";
        request.AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate;
        request.Timeout = (int)Math.Round(10.0 * 1000);
        request.Method = "GET";
        request.ContentType = "application/x-www-form-urlencoded";
        request.CookieContainer = new CookieContainer();


        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream dataStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(dataStream);
        string responseFromServer = reader.ReadToEnd();

        reader.Close();
        dataStream.Close();
        response.Close();

        File.WriteAllText(@"C:\Users\Klemen\Desktop\sourceCode.html", responseFromServer);

        MessageBox.Show("The End.");
    }

1 Ответ

0 голосов
/ 07 мая 2018

Я изменил следующую строку и получил результаты в возвращенном HTML: HttpWebRequest request = (HttpWebRequest) WebRequest.Create ("https://www.bing.com/images/search?q=" + search);

Изображения находятся в результирующем HTML, например:

<img height="170" width="230" src="https://tse2.mm.bing.net/th?id=OIP.4OY77AT9EcfuUutKYFdzIwHaLe&amp;w=230&amp;h=170&amp;rs=1&amp;pcl=dddddd&amp;o=5&amp;pid=1.1" alt=" " />

Вам необходимо разобрать теги изображений, а затем извлечь результаты изображения по одному. Я рекомендую вам использовать API вместо очистки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...