Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: VB 6.0 и HTML , копирование информации с инета Добавлено: 06.12.05 22:12  

Автор вопроса:  Николай П | Web-сайт: laguna-uhta.ru/
Задача.
Необходимо с определённой страницы сайта скопировать часть информации (используя VB) и занести её в базу данных, в дальнейшем эту информацию просматривать тоже с использованием VB.
 Всё до чего я сам достиг(используя информацию с форумов)- это открытие в форме(на VB)страницы необходимого сайта и открытия,в другой форме, html кода этой страницы, как действовать дальше не знаю и информацию найти не могу ...
 Как мне сделать следующее:
html код страницы у меня открывается в TextBox,нужен пример кода который в этом тексте будет искать часть текста который находится между <H1 и </H1>после копировании этого текста он сохраняется в БД, дальше находится текст между тегами <TABLE>и </TABLE>,но именно тот текст в котором имеется определённое слово.После нахождения также копируется в базу данных(вместе с html тэгами).
 В дальнейшем мне надо что бы в программе на VB можно было просматривать эту информацию,естественно в нормальном виде, с таблицами и всем форматированием.

Короче, мне как то надо вытаскивать описание (именно технические характеристики)на конкретные товары с сайта http://www.i2b.ru что бы в дальнейшем можно было их просматривать на локальной машине.
  Буду благодарен за любую помощь.

Ответить

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

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



Вопросов: 14
Ответов: 27
 Web-сайт: laguna-uhta.ru/
 Профиль | | #1
Добавлено: 07.12.05 08:03
Я примерно понимаю как это надо сделать,но не знаю как это делать в VB ...
У меня на форме: WebBrowser1,ComboBox1,TextBox1 и несколько CommandButton

1.
Private Sub Command2_Click()
WebBrowser1.Navigate Combo1
adr = Combo1
Combo1.AddItem (adr)
End Sub
- открываю страницу сайта,адрес берётся из Combo1
2.
Text1.Text = WebBrowser1.Document.body.innerHTML
- в поле Text1.Text заношу html код страницы
далее как то надо сделать что бы:
1. в тексте (Text1.Text)нашлась и скопировалась строка между тэгами <H1 и </H1> и именно та которая мне нужна. Как вносить её в БД я вроде знаю.
2.кажется надо создать коллекции из IHTMLTableElement по тэгам <TABLE> , но как это точно делать - не знаю :(
3.надо найти коллекцию которая будет содержать определённое слово, к примеру "производитель", и содержимое этой коллекции (вместе с тэгами) внести в БД.
4.надо вывести содержимое БД ,текст с html тэгами,которые копировали с интернет страниц, в удобочитаемом виде на VB форму, как это сделать пока тоже не знаю :(, думаю что тоже как-то надо использовать контрол WebBrowser ...
Надеюсь на вашу помощь !

Ответить

Номер ответа: 2
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #2 Добавлено: 07.12.05 11:01
После пункта 1 обрати внимание на webbrowser1.document.body.all.tags("H1";)

Ответить

Номер ответа: 3
Автор ответа:
 HACKER


 

Разработчик Offline Client

Вопросов: 236
Ответов: 8362
 Профиль | | #3 Добавлено: 07.12.05 15:29
функция по теме, может пригодится...

Public Function GetText1(AllText$, LeftText$, RightText$) As String
'Возвращает текст между двумя другими текстами с двух сторон
s1 = InStr(1, AllText$, LeftText$, 1) + Len(LeftText$)
s2 = InStr(s1, AllText$, RightText$, 1)
GetText1 = Mid(AllText, s1, s2 - s1)
End Function


Ну типа
msgbox GetText1 (WebBrowser1.Document.body.innerHTML, "<H1>", "</H1>";)

Ответить

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



Вопросов: 14
Ответов: 27
 Web-сайт: laguna-uhta.ru/
 Профиль | | #4
Добавлено: 07.12.05 21:51

вымутил такой код:

 
Private Sub Command1_Click()
    WebBrowser1.Navigate Text1.Text
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    ;Dim Doc As IHTMLDocument2
    Set Doc = WebBrowser1.Document
        ;Dim Tables As IHTMLElementCollection
        Set Tables = Doc.All.tags("TABLE";)
        ;Dim Quote As IHTMLElement
        Set Quote = Tables.Item(17, 96).All.tags("TD";).Item(2, 2)
        RichTextBox1 = Quote.innerHTML
  
End Sub


но радовался не долго, удалось запустить только один раз,повторные запуски выдают ошибку 91:
Object variable or with block variable not set

в модуле отмечается:
Tables=Nothing


подскажите пожалуйсто из за чего это может быть и как с этим бороться :( , заранее извиняюсь если вопрос этот глупый, но я только начинаю изучать VB ...

Ответить

Номер ответа: 5
Автор ответа:
 Neco



ICQ: 247906854 

Вопросов: 133
Ответов: 882
 Web-сайт: neco.pisem.net
 Профиль | | #5
Добавлено: 08.12.05 01:32
К тэйблэсу не хватает New. Либо при объявлении, либо при присваивании.

Ответить

Номер ответа: 6
Автор ответа:
 GSerg



Вопросов: 0
Ответов: 1876


 Профиль | | #6 Добавлено: 08.12.05 13:14
К тэйблэсу не хватает New. Либо при объявлении, либо при присваивании.

Глупость.


Просто нужно дождаться, пока webbrowser построит объектную модель, потому что делает он это асинхронно. Проверяй свойство .ReadyState.

Ответить

Номер ответа: 7
Автор ответа:
 DaSharm



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #7
Добавлено: 08.12.05 15:57

Можно ещё объектную модель строить отдельно, используя MS HHTML Object Library, так нагляднее.

Ответить

Страница: 1 |

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



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