Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Webbrowser . Frame, IFrame Добавлено: 11.04.11 14:54  

Автор вопроса:  Николай
Microsoft Visual Basic 2008

Здравствуйте.
Создал WinForm на ней расположил контролл WebBrowser , загружаю в него страницу и хочу получить код этой страницы целиком в текстовом виде для дальнейшей обработки, но натолкнулся на проблемму:
структура страницы примерно такого вида
<TABLE ....>
<BODY>
.............
      <FRAME>
          .......
              <IFRAME>
                 ............
              </IFRAME>
     </FRAME>
</BODY>

куча фреймов и в них Ифреймов ...
вот именно к содержимому IFRAME я и не могу добраться :(

используя
TextBox1.Text = webbrowser1.Document.Body.InnerHtml
данные во frame и iframe не доступны.
используя
TextBox1.Text = webbrowser1.Document.Window.Frames.Item("аааааа").Document.Body.InnerHtml
я вроде добрался до данных в FRAME "аааааа" , а вот данные из IFRAME так и не могу получить.

Подскажите как можно получить все данные с загруженной в webbrowser страницы целиком, не вытаскивая по отдельности из каждого фрейма.Вроде есть такое DOM который должен это делать но как с ним работать я не разобрался :( . Не смогли бы Вы уважаемые показать пример кода как построить этот DOM ?

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Николай



Вопросов: 5
Ответов: 7
 Профиль | | #1 Добавлено: 11.04.11 14:59
в интернете, на форумах искал, но всё в основном не совсем то что мне надо,либо слишком накрученно .. я только начал заниматься программированием , вышел на пенсию,появилось много свободного времени :)

Ответить

Номер ответа: 2
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #2
Добавлено: 13.04.11 15:40
iframe служит для отображения левых страниц внутри текущей. Так что тебе надо сначала получить значение аргумента "src" для заданной iframe, а потом сделать navigate по указанному адресу. Вот тогда и получится все увидеть, чего там за содержимое.
Вот так можно получить всю коллекцию ifram-ов на странице и их атрибут src. Ну а дальше ходи по ссылкам

Ответить

Номер ответа: 3
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #3
Добавлено: 13.04.11 15:41
  1.  
  2.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  3.         Me.WebBrowser1.Navigate("http://cargomaster.at.ua/index/kontejnery/0-8")'ну или куда там надо...
  4.     End Sub
  5.  
  6.     Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
  7.         Dim wd As HtmlDocument = Me.WebBrowser1.Document
  8.         Dim ifcol As HtmlElementCollection
  9.         ifcol = wd.GetElementsByTagName("iframe")
  10.         For Each wl As HtmlElement In ifcol
  11.             MsgBox(wl.GetAttribute("src"))
  12.         Next
  13.     End Sub

Ответить

Номер ответа: 4
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #4
Добавлено: 13.04.11 15:51
а если для других элементов (тогда и имя тега в коде другое, не забудь) надо получить содержимое внутри элемента, пользуй
wl.InnerHTML или InnerText. Просто у <iframe тут атрибут src>вот тут пустота</iframe>. Потому и получить нельзя, надо сходить по ссылке.

Ответить

Номер ответа: 5
Автор ответа:
 Николай



Вопросов: 5
Ответов: 7
 Профиль | | #5 Добавлено: 16.04.11 14:13
Дмитрий Юпатов
Благодарю за помощь.
Но дело в том что мне хотелось бы получать данные именно из окна webbrowser не отправляя дополнительных запросов,нужная мне странница постоянно обновляется и создавая каждый раз запрос трафик увеличится вдвое :(

Ответить

Номер ответа: 6
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #6
Добавлено: 22.04.11 00:35
Николай пишет:
Но дело в том что мне хотелось бы получать данные именно из окна webbrowser не отправляя дополнительных запросов,нужная мне странница постоянно обновляется и создавая каждый раз запрос трафик увеличится вдвое

ты не понял. В тексте страницы, которая содержит iframe, нет ничего что внутри этого самого iframe. Только урлик на содержимое, т.е. на другую страницу, которая отображается в iframe. Попробуй открыть страницу обычным браузером (тем же ишаком) и посмотри исходный код страницы: внутри <iframe></iframe> нет ничего.

Ответить

Номер ответа: 7
Автор ответа:
 Дмитрий Юпатов



Вопросов: 4
Ответов: 457
 Web-сайт: cargomaster.at.ua/
 Профиль | | #7
Добавлено: 22.04.11 00:38
это кусок из твоего вопроса.
<IFRAME>
                 ............
              </IFRAME>

неужто вместо многоточия что то там есть? Если да, то смотри пост №4 касательно получения innertext - таким образом ты достанешь содержимое. Если нет, см. 2 и 3.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам