powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с WebClient
7 сообщений из 7, страница 1 из 1
Проблема с WebClient
    #39530303
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую.

Необходимо сделать парсер, который будет отслеживать обновления данных по заданному УРЛ и добавлять их в БД.
Проблема в том, что при скачивании страницы через WebClient выдается одна версия, а при открытии через браузер (даже с отключенным JavaScript и в приватном режиме) - другая.
Через Web-Client загружается версия размером 35КБ, в то время как view-source: в хроме или любом другом браузере - около 2х МБ.
Думал, что может быть дело в заголовках, прописал их, но ничего не получилось - все равно возвращается "короткая" строка.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
 public class CustomWebClient : WebClient
    {
        public CustomWebClient() { }
        protected override WebRequest GetWebRequest(Uri address)
        {
            var request = base.GetWebRequest(address) as HttpWebRequest;
            request.UserAgent =
                "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36";
            request.Host = address.Host;
            request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8";
            request.Referer = "https://www.google.ru/";
            request.Headers["Accept-encoding"] = "gzip, deflate";
            request.Headers["Accept-language"] = "ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4";
            request.Headers["Upgrade-insecure-requests"] = "1";
            request.Headers["Cookie"] = "__utma=45462011.1937116378.1507035093.1507035093.1507035093.1; __utmb=45462011.2.10.1507035093; __utmc=45462011; __utmz=45462011.1507035093.1.1";
            request.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
            request.Timeout = request.ContinueTimeout = request.ReadWriteTimeout = 30000;
            return request;
        }
    }

//src.Url = https://www.kidsreview.ru/msk/catalog/kulturnye-otdykh-i-razvlecheniya/gde-otmetit-detskii-den-rozhdeniya-v-moskve

                using (var wc = new CustomWebClient())
                {
                    wc.Encoding = Encoding.UTF8;
                    var body = wc.DownloadString(src.Url);
                }



В чем еще может быть подвох?

Спасибо.
...
Рейтинг: 0 / 0
Проблема с WebClient
    #39530389
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30,

Ну да. А что вас смущает? Что размеры разные? Ну, представьте себе картинку большую на странице. Или аякс какой-нибудь.
...
Рейтинг: 0 / 0
Проблема с WebClient
    #39530427
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge, нет, я не имею в виду аякс и картинки, я имею в виду исключительно выдаваемый HTML код.
Попробуйте открыть ссылку в браузере - увидите длиннющую страницу и HTML кода на 2 МБ.
При этом он загружается сразу, а не догружается потом аяксом.
...
Рейтинг: 0 / 0
Проблема с WebClient
    #39530437
Фотография LR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexey30,
навскидку попробовал, нормально все загружается, "около 2х МБ"
Код: c#
1.
2.
3.
4.
5.
6.
7.
            var url = "https://www.kidsreview.ru/msk/catalog/kulturnye-otdykh-i-razvlecheniya/gde-otmetit-detskii-den-rozhdeniya-v-moskve";
            string htmlsrc = "";
            using (WebClient wc = new WebClient())
            {
                wc.Encoding = Encoding.UTF8; 
                htmlsrc = wc.DownloadString(url);
            }
...
Рейтинг: 0 / 0
Проблема с WebClient
    #39530440
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LR,

Может, это реклама?
...
Рейтинг: 0 / 0
Проблема с WebClient
    #39530441
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ShSergeLR,

Может, это реклама?
Нет. Не реклама.
...
Рейтинг: 0 / 0
Проблема с WebClient
    #39530444
Alexey30
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ShSerge, нет, подгружается через JS, в данном случае это никак не влияет.

Разобрался, это моя ошибка.
Я не сохранял напрямую body и не проверял его длину, а открывал его правой кнопкой в Text Visualizer.
Так как там отсутствовали переносы строки, то визуализатор решил укоротит самую длинную строку (которая и являлась основной частью файла).
Вот тут конкретно видно: https://www.diffchecker.com/S8iIUslc
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема с WebClient
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]