Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> HttpWebRequest и HttpWebResponse урезаны? 
:(
    Опции темы
gogzor
Дата 2.11.2008, 19:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 21.9.2006

Репутация: нет
Всего: нет



Всем привет. 
Вот сейчас пишу программку. Там нужно из HTML страницы парсить все hidden поля. Так вот , я это делаю по привычке с помощью классов HttpWebRequest & HttpWebResponse. 
Но когда я пытаюсь парсить содержимое страницы , полученое в ходе операции...то hidden полей там нет..
А если я например смотрю HTML страницы в браузере (FireFox) через плагин Firebug , то все поля видны. Можно ли как то получить эти поля классами HttpWebRequst & HttpWebResponse? Или есть ещё какие-нибудь варианты?

Это сообщение отредактировал(а) gogzor - 2.11.2008, 19:12
PM MAIL   Вверх
Bogdan1024
Дата 2.11.2008, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Код

            Settings1 s = new Settings1();
            HttpWebRequest RQ = (HttpWebRequest)HttpWebRequest.Create(s.URI);
            HttpWebResponse RS = (HttpWebResponse)RQ.GetResponse();
            System.IO.FileStream fs = new System.IO.FileStream(s.SaveToFile, System.IO.FileMode.Create);
            System.IO.StreamWriter sw = new System.IO.StreamWriter(fs);
            System.IO.StreamReader sr = new System.IO.StreamReader(RS.GetResponseStream());
            sw.Write(sr.ReadToEnd());
            sr.Close();
            sw.Close();
            fs.Close();
            RS.Close();      

У меня почему-то видны все невидимые поля. Как ты читаешь что у тебя их не видно?


--------------------
user posted image
PM MAIL   Вверх
Dims
Дата 3.11.2008, 15:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Наверняка ошибка в регулярном выражении. Никакой урезанности по hidden полям быть не может, так как hidden это команда для рендерера HTML, а HttpWebRequest получают исходный HTML-код не интерпретируя его. 

Вы посмотрите в отладчике содержимое прочитанного текста-то.
PM MAIL   Вверх
actual
Дата 3.11.2008, 15:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 15.10.2008

Репутация: нет
Всего: 2



Как вариант, скрытые поля могут генерироваться сервером только при наличии определённых куков.. или вообще ява-скриптом, что есть самый плохой вариант для вас.
PM   Вверх
Dims
Дата 3.11.2008, 15:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



А вообще-то да, и такое может быть.

Можно проверить при помощи программы Wget. Это простейший браузер-скачивальщик. Если там будут присутствовать эти скрытые поля, то, значит, ни куки, ни джаваскрипт не участвуют в проблеме.
PM MAIL   Вверх
Bogdan1024
Дата 3.11.2008, 17:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1436
Регистрация: 28.9.2005
Где: Киев

Репутация: 5
Всего: 13



Если невидимые поля генерируются javascript'ом, то их не будет видно и в исходнике страницы.


--------------------
user posted image
PM MAIL   Вверх
Dims
Дата 3.11.2008, 17:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1016
Регистрация: 21.11.2006

Репутация: 0
Всего: 11



Он каким-то Firebug-ом открывал. Я вижу, он DOM модель показывает. Возможно, эта примочка показывает и то, что сгенерировано динамически. Но я не знаю, не работал с ней.
PM MAIL   Вверх
gogzor
Дата 3.11.2008, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 134
Регистрация: 21.9.2006

Репутация: нет
Всего: нет



Проблема решена.

FireBug показывает всё статическое и динамическое. При запросе добавил UserAgent - Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0).
В нём эти поля возможно получить. Движок который я парсил , не показывает поля в FireFox, хотя они статичные.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0662 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.