Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Вырезать часть HTML

305
15 марта 2010 года
Kashuk
385 / / 21.02.2003
Подскажите, пожалуйста, каким образом можно вырезать часть HTML кода и подставить полученный код в WebBrowser.

Пробовал обрабатывать всё через WebRequest, WebResponse и подсовывать в WebBrowser.
Но получается какая то ерунда. Картинок нет, всё кривое.
8.2K
15 марта 2010 года
bagie2
299 / / 26.10.2008
а где код?

 
Код:
webBrowser1.DocumentText = "<img src=\"http://i.codenet.ru/www/images/logo.gif\" />";

это ли имелось ввиду?
305
15 марта 2010 года
Kashuk
385 / / 21.02.2003
Цитата: bagie2
а где код?

 
Код:
webBrowser1.DocumentText = "<img src=\"http://i.codenet.ru/www/images/logo.gif\" />";

это ли имелось ввиду?




Пробую загрузить простую страничку, без изменений.

 
Код:
Uri uri = new Uri(textBox3.Text);
            WebRequest request = WebRequest.Create(uri);
            WebResponse respons = request.GetResponse();
            webBrowser1.DocumentStream = respons.GetResponseStream();
8.2K
15 марта 2010 года
bagie2
299 / / 26.10.2008
все пути к изображениям, таблицам стилей и т.д. должны быть абсолютными

//кстати
Цитата:
Данный ответ должен быть закрыт, чтобы не исчерпать системные ресурсы. Поток ответа может быть закрыт с помощью вызова Stream.Close или Close.


но закрыть сразу ответ вы не сможете, иначе ничего не загрузится. мне кажется лучше сначала считать данные полностью и потом уже присваивать DocumentStream значение.

305
16 марта 2010 года
Kashuk
385 / / 21.02.2003
Цитата: bagie2
все пути к изображениям, таблицам стилей и т.д. должны быть абсолютными

//кстати

но закрыть сразу ответ вы не сможете, иначе ничего не загрузится. мне кажется лучше сначала считать данные полностью и потом уже присваивать DocumentStream значение.


Пробую так:

Код:
Uri uri = new Uri(textBox3.Text);
            WebRequest request = WebRequest.Create(uri);
            WebResponse response = request.GetResponse();
            Stream stream = response.GetResponseStream();

            StreamReader reader = new StreamReader(stream);
            string text = reader.ReadToEnd();

            text = text.Replace(@"src=""/", "src=\"http://" + uri.Host + "/");
            text = text.Replace(@"href=""", "href=\"http://" + uri.Host + "/");
            webBrowser1.DocumentText = text;

Картинки прорисовываются, но проблема с текстом.
Такое впечатление, что после того, как я передаю путь к таблице стилей, то с стилей всё качается в напрямую, в обход WebRequest, WebResponse.

Или я что-то не так сделал?
8.2K
16 марта 2010 года
bagie2
299 / / 26.10.2008
конечно напрямую =) WebBrowser будет сам скачивать и картинки и стили и всё остальное.
305
16 марта 2010 года
Kashuk
385 / / 21.02.2003
Цитата: bagie2
конечно напрямую =) WebBrowser будет сам скачивать и картинки и стили и всё остальное.



Да…
Тогда такой вариант не подходит :)

Каким образом можно вырезать часть HTML?

305
16 марта 2010 года
Kashuk
385 / / 21.02.2003
У меня был второй вариант, написать прокси сервер, и пускать трафик через него. Но как написать простой прокси сервер не знаю. Да и как заставить компонент браузера работать через проскю тоже не знаю.
8.2K
16 марта 2010 года
bagie2
299 / / 26.10.2008
покуда браузер обычно все равно скачивает файлы в дисковый кэш то можно самому загрузить все стили, картинки, сохранить во временный каталог. потом загрузить сам хтмл и поправить в нем все пути.

чтобы заставить работать через прокси - http://support.microsoft.com/kb/226473
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог