С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# .NET
Войти
Регистрация
Восстановить пароль
 
Ogienko
5 / 5 / 5
Регистрация: 28.11.2014
Сообщений: 40
1

Слетела кодировка при парсинге html-страницы

14.01.2016, 18:56. Просмотров 461. Ответов 2

Здравствуйте!
Начал писать программу которая парсит сайт. В заголовке html-страницы указана следующая кодировка:
HTML5
1
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Метод, возвращающий html-текст:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 private String GetPage(String url, String referer, String cookies)
        {
            HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(url);
            myHttpWebRequest.Referer = referer;
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36 OPR/34.0.2036.47 (Edition Yx)";
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8";
            myHttpWebRequest.Headers.Add("Accept-Language", "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4");
            myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip, deflate, lzma, sdch");
            myHttpWebRequest.Headers.Add("Upgrade-Insecure-Requests", "1");
            myHttpWebRequest.ContentType = "text/html";
            myHttpWebRequest.Headers.Add(HttpRequestHeader.Cookie, cookies);
            HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse();
            StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
            return myStreamReader.ReadToEnd();
        }
Некоторое время метод отрабатывал нормально, возвращал html-страницу в нормальной кодировке. Смешное то, что через пару часов стал возвращать, как говорится в народе - "краказябры".

В строке
C#
1
StreamReader myStreamReader = new StreamReader(myHttpWebResponse.GetResponseStream(), Encoding.GetEncoding(1251));
Только какие кодировки не ставил, всё равно "краказябры".
Прошу помочь.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.01.2016, 18:56
Ответы с готовыми решениями:

Избавление от &_shy_; при парсинге страницы
Доброго времени суток. Пытаюсь спарсить страницу вот таким вот кодом WebClient...

Трудности при париснге HTML страницы - пустые данные
Здравствуйте. Практикую парсинг страниц, использую HtmlAgilityPack и возникли...

Ошибка при парсинге IP
Какая-то странная ошибка возникает при парсинге строки Ip. Сама строка берётся...

Исключение при парсинге JArray
Здравствуйте! Имеется JSON строка следующего типа: { &quot;employees&quot;: } ...

Out of memory при парсинге с webBrowser
Друзья, посоветуйте почему выдает out of memory??? Есть множество ссылок на...

2
OwenGlendower
Супер-модератор
Эксперт .NET
9702 / 8445 / 3614
Регистрация: 17.03.2014
Сообщений: 16,908
Записей в блоге: 1
14.01.2016, 22:46 2
Ogienko, попробуй данный подход. Там используется WebClient, но его несложно переделать под HttpWebRequest
1
Ogienko
5 / 5 / 5
Регистрация: 28.11.2014
Сообщений: 40
15.01.2016, 10:41  [ТС] 3
Спасибо большое.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.01.2016, 10:41

Пустой cellRange.Value при парсинге Excel
Здравствуйте! Пишу парсер Excel. Написал шаблоны уже для множества файлов, но...

При парсинге с помощью XDocument данные не выводятся
Добрый день, Есть хмл файл примерно с такой структурой &lt;Шапка ...

Как получить (HTML) тело aspx страницы при ответе сервера “HTTP/1.1 500 Internal Server Error"?
Нужно получить исходный код с ошибкой (именно при ответе сервера 500 Internal...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru