Метод HttpContent.ReadAsStringAsync () возвращает недействительный HTML-код. Как это может быть? - PullRequest
0 голосов
/ 26 марта 2019

Вот некоторый код для запроса html-кода с URL.

var currentUrl = "https://www.google.com";
HttpClient client = new HttpClient();
System.Diagnostics.Process.Start(currentUrl); //here i open a browser with same URL, 
var response = await client.GetAsync(currentUrl);
string sourse = null;


if (response != null && response.StatusCode == HttpStatusCode.OK)
{
     sourse =await response.Content.ReadAsStringAsync(); // here i get the html-code
}

Итак, вопросы: почему HTML-код, который я получаю из программы, и HTML-код с реальной страницы в браузере, который я открыл несколько секунд назад, отличаются? Это не имеет смысла.

Кроме того, вот некоторые доказательства. Первое изображение - номер символа в HTML-коде браузера. enter image description here

... и в HTML-коде программы enter image description here

Я дал самое простое доказательство, чтобы облегчить вопрос. Но если я копаю глубже, HTML-код приходит из ниоткуда. Когда я анализирую конкретную страницу, а это должно быть 39 товаров, программа возвращает html-код, который содержит только 6 товаров (которые, кстати, не включены в 39 тех, которые фактически есть на странице в браузере). Поэтому я задал вопрос так просто. Действительно, минуту назад я делаю новый проект с этим кодом, и он работает некорректно, как я писал выше. чтобы получить код, который возвращает программа, я могу найти его в переменной sourse или оставить в файле, а затем сравнить. Как:

        FileStream fs = new FileStream("report.txt", FileMode.OpenOrCreate);
        StreamWriter SW = new StreamWriter(fs);
        SW.WriteLine(sourse);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...