Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Захват из интернет страницы. / 19 сообщений из 19, страница 1 из 1
26.01.2007, 06:10
    #34283752
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Всем здравствуте.
Скажите пожалуйста, у меня есть интернет страница http://]http://wow.kraslan.ru/index.php?action=server на которой есть строчка Online/Offline.
Возможно ли такое чтобы программка проверяла состояние этой строчки и выводила ее в окно программы?
Очень срочно...спасибо.
...
Рейтинг: 0 / 0
26.01.2007, 07:00
    #34283790
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Конечно можно
можно использую
WebBrowser Control (просто добавив контрол)
или
InternetExplorer.Application:
Код: plaintext
1.
2.
3.
Dim objIEApp As Object
Set objIEApp=CreateObject("InternetExplorer.Application")
objIEApp.Visible=False
objIEApp.Navigate2 "http://www.wp.com"
и в обеих объектах есть ссылка на объект Document (DHTML объект document) через которую можно получить доступ к содержимому страницы, даже к элементам
...
Рейтинг: 0 / 0
26.01.2007, 07:02
    #34283792
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
здорово...сейчас попробую...
...
Рейтинг: 0 / 0
26.01.2007, 07:10
    #34283803
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
так, объявил...
как теперь например с http://www.wp.com
по нажитию CommandButton взять строчку dvd и вывисти ее в Label?
...
Рейтинг: 0 / 0
26.01.2007, 07:30
    #34283820
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Добавляете ссылку на контрол Microsoft Internet Controls, добавляете контрол WebBrowser (по умолчанию с именем WebBrowser1), и затем пример следующего кода
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Option Explicit

Private Sub Form_Load()
    WebBrowser1.Navigate2 "http://www.r0.ru"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    MsgBox WebBrowser1.Document.All( 0 ).tagName
End Sub
Можете к элементам по имени обращаться, кроме коллекции All, есть коллекции tables, forms и т.д., это уже DHTML, в MSDN есть документация по ним
...
Рейтинг: 0 / 0
26.01.2007, 07:44
    #34283831
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Так...ну браузер получается простой
И он выдает MsgBox с сообщением HTML.
А как слово из страницы захватить?
...
Рейтинг: 0 / 0
26.01.2007, 08:02
    #34283847
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Если не хотите такой вариант, нужно написать свой броузер, потом после получения содержимого страницы, самому написать парсер HTML, чтобы найти текст
А в данном случае, можете сделать Webbrowser невидимым, или через InternetExplorer.Application
при таком варианте посредством DHTML легче обратиться к содержимому страницы
т.е. не нужно изобретать велосипед
или можно воспользоваться готовыми решениями HTTP-клиентов сторонних разработчиков, на www.vbip.com есть пример клиента на базе Winsock, пример, бесплатный
ну короче, смотрите анализируйте, выбирайте :)
...
Рейтинг: 0 / 0
26.01.2007, 08:12
    #34283862
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Нет меня вполне устраивает ваш пример! :)
Я просто главного не понял как из загрузившейся страницы вытащить текст?
...
Рейтинг: 0 / 0
26.01.2007, 10:15
    #34284184
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Ссылку дайте и что надо вытаскивать покажите
...
Рейтинг: 0 / 0
26.01.2007, 10:20
    #34284207
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Вот ссылка http://wow.kraslan.ru/index.php?action=server
Вытащить надо слово Online. И поместить его в Label
...
Рейтинг: 0 / 0
26.01.2007, 10:21
    #34284216
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Online может менятся на Offline.
Вот мне и надо запускать программу чтобы проверяла что там написано...онлайн или оффлайн
...
Рейтинг: 0 / 0
26.01.2007, 11:16
    #34284505
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Вот код
Добавляешь контрол WebBrowser с именем WebBrowser1, и Label с именем lblStatus
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Option Explicit

Private Sub Form_Load()
'Здесь изменяем статус Label'а
    lblStatus.Caption = "Loading..."
'Чтобы сообщения не выходили, не то у меня выходит, ошибка выполнения скрипта и т.д.
    WebBrowser1.Silent = True
'Перемещаем контрол WebBrowser за пределы Form'ы
    WebBrowser1.Left = Me.Left + Me.Width +  10 
    WebBrowser1.Top = Me.Top + Me.Height +  10 
'Пустая страница
    WebBrowser1.Navigate2 "about:blank"
'Загрузка сайта
    WebBrowser1.Navigate2 "http://wow.kraslan.ru/index.php?action=server"
End Sub

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
'Так как сайт у тебя дважды грузится, в смысле данное событие происходит дважды:
'один раз, когда первый раз грузишь
'потом она, обновляется
'а элемент который содержит строку Online, Offline имеет индекс 12, при первой загрузке, когда на 'сайте ничего нет элемента с индексом 12, нет поэтому и поставил On Error...
'при повторной загрузке, если таковой имеется изменяется текст и back color Label'а
    On Error Resume Next
    Dim strStatus$
    strStatus = Trim$(WebBrowser1.Document.All( 12 ).innerText)
    If StrComp(strStatus, "Online", vbTextCompare) =  0  Then
        lblStatus.BackColor = vbGreen
        lblStatus.Caption = "Online"
    ElseIf StrComp(strStatus, "Offline", vbTextCompare) =  0  Then
        lblStatus.BackColor = vbRed
        lblStatus.Caption = "Offline"
    End If
End Sub
...
Рейтинг: 0 / 0
26.01.2007, 11:32
    #34284607
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
огромное спасибо!!!
...
Рейтинг: 0 / 0
26.01.2007, 13:18
    #34285122
Andrey911
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Посмотри дружыще ещё один вариант (посложнее)

Inet1(0).protocol = icHTTP

ZapitURLName типу стрингс в крирой твоя урл-ка

твой запыт
Inet1(0).Execute CStr(ZapitURLName), "GET /"
на всякий случай в этой процедуре можешь проверить на ошыбку
и если найдешь, то выруби так
Inet1(0).Cancel
сам узнаешь почему...

дальше в той же процедуре проверяешь на закачку до конца

While Inet1(0).StillExecuting
DoEvents
Wend
после этой строчки уже явно страница загрузитса до конца или ошыбка если урл туфтова грузит

В отдельной процедуре Private Sub Inet1_StateChanged(Index As Integer, ByVal State As Integer)
проверяешь то что ищеш и можешь сохранять сразу на винт а потом запустить в бравзере
Select Case State
Case 12
stemp = Inet1(Index).GetChunk(100)
While stemp <> ""
Print #10, stemp;
stemp = Inet1(Index).GetChunk(100)
Вот тебе пример того что я не хочу чтобы эта страница у меня сохранялась...
If InStr(1, MemData(0), " Про внесення змін ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), " Про внесення зміни ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), " Про внесення доповнень ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), " Про внесення доповнення ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), ">Про внесення змін ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), ">Про внесення зміни ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), ">Про внесення доповнень ", vbBinaryCompare) <> 0 Or InStr(1, MemData(0), ">Про внесення доповнення ", vbBinaryCompare) <> 0 Then
Wend

Вопшем немножко сложновато
Но в моем варианте это было очень нужным. Я качаю законы и налету выбераю что мне нужно а что не нужно а сам ложусь спать.
...
Рейтинг: 0 / 0
26.01.2007, 14:01
    #34285330
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Можно даже на базе Winsock сделать...
...
Рейтинг: 0 / 0
27.01.2007, 06:59
    #34286999
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
почему-то не работает все равно...
когда на страниче меняется на оффлайн lblStatus все равно показывает онлайн...
...
Рейтинг: 0 / 0
27.01.2007, 07:15
    #34287010
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Это она при загрузке страницы меняется или как?
Я дал вам просто направление как "выдергивать" информацию из страницы,
а попробуйте копнуть глубже, отлаживайте, события обрабатывайте и т.д.
...
Рейтинг: 0 / 0
04.02.2007, 11:30
    #34304598
Found
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
а как узнать индекс того или иного элемента?
...
Рейтинг: 0 / 0
05.02.2007, 05:27
    #34305272
orunbek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Захват из интернет страницы.
Поочередно выводить все
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Захват из интернет страницы. / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]