C# HttpWebRequest и HttpWebResponse. Не могу получить весь к
От: dimawork1989  
Дата: 15.08.13 17:49
Оценка:
есть сайт 3akachay.com, нужно зайти на него именно на страницу регистрации, принять правила и получить весь HTML код страницы, все бы не чего но страница получается не вся, а только её часть
вот, что я делаю:

HttpWebRequest myHttpWebRequest =
                (HttpWebRequest)HttpWebRequest.Create("http://" + strURL + "/index.php?do=register");

            //Инициализация параметров для выполнения запроса
            myHttpWebRequest.Method = "POST";
            myHttpWebRequest.Host = strURL;
            myHttpWebRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:23.0) Gecko/20100101 Firefox/23.0";
            myHttpWebRequest.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            myHttpWebRequest.Referer = "http://" + strURL + "/index.php?do=register";
            myHttpWebRequest.Headers.Add("Accept-Language", "ru");


           // myHttpWebRequest.Headers.Add("Accept-Encoding", "gzip");
            myHttpWebRequest.ContentType = "application/x-www-form-urlencoded";

            try //Возможно сервер в данный момент не работает
            {
                //Сформировать параметры для успешного выполнения POST запроса (Т.е Нажать на кнопку прочитал правила, СОГЛАСЕН)
                byte[] SomeBytes = null;
                string postData = "dle_rules_accept=yes";
                SomeBytes = Encoding.UTF8.GetBytes(postData);
                myHttpWebRequest.ContentLength = SomeBytes.Length;
                Stream newStream = myHttpWebRequest.GetRequestStream();
                newStream.Write(SomeBytes, 0, SomeBytes.Length);
                newStream.Close();
            }
            catch (WebException e) //Если сайт не работает, то пока вывести предупреждение
            {
                MessageBox.Show(e.Message);
                return -1;
                ; 
            }


           HttpWebResponse res = (HttpWebResponse)myHttpWebRequest.GetResponse();
            string find_text = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("windows-1251")).ReadToEnd();


В результате получается не весь HTML код страницы

С другими сайтами проблемы нет, пока наткнулся на этот, у него есть особенность, что на нем установлен ЗЛОЙ модуль:
http://s2.1pic.org/files/2013/08/15/bdad6f14a37c205e162e.jpg

проверял полученный код , он ровно до конца этого модуля (таблицы) дальше HTML код отсутствует.

Помогите, пжс, уже 3-й день бьюсь ап стену, не могу понять как его получить полностью
Заранее спасибо.
Re: C# HttpWebRequest и HttpWebResponse. Не могу получить весь код HTM страницы
От: matumba  
Дата: 15.08.13 23:17
Оценка:
Здравствуйте, dimawork1989, Вы писали:

D>В результате получается не весь HTML код страницы

D>проверял полученный код , он ровно до конца этого модуля (таблицы) дальше HTML код отсутствует.

Как вариант, ублюдочный жабоскрипт сам закачивает контент и подменяет его в каком-нибудь DIV'е (в браузере).
Re: C# HttpWebRequest и HttpWebResponse. Не могу получить весь код HTM страницы
От: matumba  
Дата: 15.08.13 23:17
Оценка:
Здравствуйте, dimawork1989, Вы писали:

D>В результате получается не весь HTML код страницы

D>проверял полученный код , он ровно до конца этого модуля (таблицы) дальше HTML код отсутствует.

Как вариант, ублюдочный жабоскрипт сам закачивает контент и подменяет его в каком-нибудь DIV'е (в браузере).
Re[2]: C# HttpWebRequest и HttpWebResponse. Не могу получить весь код HTM страни
От: matumba  
Дата: 15.08.13 23:19
Оценка:
Чё мл... с сервером? В 3:15 по маскве даже пинги не проходят, потом сервер очухивается и не может даже принять кило текста.
Re: C# HttpWebRequest и HttpWebResponse. Не могу получить весь код HTM страницы
От: Sinclair Россия https://github.com/evilguest/
Дата: 16.08.13 06:52
Оценка: +1
Здравствуйте, dimawork1989, Вы писали:

D>есть сайт 3akachay.com, нужно зайти на него именно на страницу регистрации, принять правила и получить весь HTML код страницы, все бы не чего но страница получается не вся, а только её часть

D>вот, что я делаю:
Сразу вопрос дня: вы http://fiddlertool.com уже поставили?

На трафик между браузером и сайтом посмотрели? С трафиком своего приложения сравнили?
В чем разница, обнаружили?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re: C# HttpWebRequest и HttpWebResponse. Не могу получить весь код HTM страницы
От: dimawork1989  
Дата: 16.08.13 08:06
Оценка:
Делов в том, что если этот сайт загружать через встроенный webbrauser С# и выводить код страницы, то в нем все верно, а через запросы HttpWebRequest проблема
Re[2]: C# HttpWebRequest и HttpWebResponse. Не могу получить весь код HTM страни
От: HotDog Швейцария www.denebspace.com
Дата: 19.08.13 10:10
Оценка:
Здравствуйте, dimawork1989, Вы писали:

D>Делов в том, что если этот сайт загружать через встроенный webbrauser С# и выводить код страницы, то в нем все верно, а через запросы HttpWebRequest проблема


HttpWebRequest это не тоже самое что Webbrowser.
HttpWebRequest не выполняет скриптов, не делает редиректов, не хостит ActiveX, Java, Flash etc.
Re: C# HttpWebRequest и HttpWebResponse. Не могу получить весь к
От: pavel783  
Дата: 22.08.13 04:24
Оценка: :)
для таких случаев лучше иcпользовать платный http request провайдер — не помню как он называется я его несколько лет назад использовал 1 раз чтобы добиться соответствия браузерных запросов и aspnet запросов, тк httpwebrequest не позволяет некоторые http header'ы отправлять. или подключить fiddler и у него в скрипте прописать все недостающие части request, тогда можно добиться соответствия браузерных запросов и httpwebrequest запросов 1 к 1. самое поганое что в случае ajax надо будет самому вычислять параметры если сайт не поддерживает nojavascript режим, для этого можно парсить сайт через HtmlAgilityPack
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.