Help: Как считать данные с Web-Страницы

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
6a6auKa
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.11.2007 (Чт) 23:18

Help: Как считать данные с Web-Страницы

Сообщение 6a6auKa » 16.11.2007 (Пт) 23:15

Как можно считать данные с Web-Страницы, т.е. определённый участок
текста или ещё что-нить?

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 16.11.2007 (Пт) 23:20

Вариантов навалом
1) Через API - UrlDownloadToFile
2) Через XmlHttp
3) Через InternetExplorer.Application
4) Через функции компонента Activex - AsyncRead
и ещё много разных вариантов

Смотря какая задача :)

6a6auKa
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.11.2007 (Чт) 23:18

Сообщение 6a6auKa » 16.11.2007 (Пт) 23:21

Ну допустим если на странице присутствует такой-то текст, то прога выполняет такое-то действие

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.11.2007 (Сб) 0:29

Через WinHTTP; я считаю - оптимальный вариант.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

6a6auKa
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.11.2007 (Чт) 23:18

Сообщение 6a6auKa » 17.11.2007 (Сб) 0:44

А можно по-подробнее?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.11.2007 (Сб) 0:56

—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

6a6auKa
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.11.2007 (Чт) 23:18

Сообщение 6a6auKa » 17.11.2007 (Сб) 1:49

Ничё не понял... мне надо хотябы вывести значение из Web-страницы на экран (на Label), а значение постоянно меняется.
Просто скажите команду, весь поиск перерыл, ничего похожего не нашёл...

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 17.11.2007 (Сб) 2:07

Команду? Спартак!

There are no commands in the Visual Basic 6. Информации, которую можно найти перейдя по ссылке, более чем достаточно.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Lumen
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 841
Зарегистрирован: 03.12.2005 (Сб) 16:09
Откуда: Брянск

Сообщение Lumen » 17.11.2007 (Сб) 20:21

Хакер
Зенит - Чемпион!!! :) :)

ЗЫ: Сорри за флуд...
Подпись проходит рефакторинг

t116
Бывалый
Бывалый
 
Сообщения: 209
Зарегистрирован: 12.01.2007 (Пт) 12:11

Сообщение t116 » 18.11.2007 (Вс) 3:34

6a6auKa
Поройся в кирпичах. Там есть класс для скачивания файлов с Интернета.

Saturn.65
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 543
Зарегистрирован: 13.10.2006 (Пт) 18:46

Re: Help: Как считать данные с Web-Страницы

Сообщение Saturn.65 » 18.11.2007 (Вс) 9:15

6a6auKa писал(а):Как можно считать данные с Web-Страницы, т.е. определённый участок
текста или ещё что-нить?

Вопрос довольно расплывчатый. Нужно знать, какой именно участок.
Как ты будешь команды писать?
Command1_Click =" считать определенный участок"?
Вот код, чтоб сохранить web страницу на диск. Может из этого что можно сделать?
Код: Выделить всё
'Расположите на форме элемент CommandButton.
Private Declare Function URLDownloadToFile Lib "urlmon" Alias "URLDownloadToFileA" (ByVal pCaller As Long, ByVal szURL As String, ByVal szFileName As String, ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long
Public Function DownloadFile(URL As String, LocalFilename As String) As Boolean
Dim lngRetVal As Long
lngRetVal = URLDownloadToFile(0, URL, LocalFilename, 0, 0)
If lngRetVal = 0 Then DownloadFile = True
End Function
Private Sub Command1_Click()
DownloadFile "http://sharig.webzone.ru", "c:\sharig_webzone_ru.htm"
End Sub

ALX_2002
Мега гуру
Мега гуру
 
Сообщения: 2054
Зарегистрирован: 25.11.2002 (Пн) 20:03

Сообщение ALX_2002 » 18.11.2007 (Вс) 23:34

Код: Выделить всё

Dim XmlHttp

Set XmlHttp = CreateObject("Microsoft.XmlHttp")

Xmlhttp.Open "GET","http://www.mail.ru",False

XmlHttp.Send

if XmlHttp.Status = 200 Then

   Dim HTMLDocument
   Set HTMLDocument = CreateObject("HTMLFile")
   HTMLDocument.Clear
   HTMLDocument.Open
   HTMLDocument.write XmlHttp.ResponseText

   For Each Element in HTMLDocument.all.tags("TABLE")
      if Element.ClassName = "frame" Then
         Msgbox Element.innertext      
      End if
   Next

Else
   MsgBox XmlHttp.Status & ":" & XmlHttp.StatusText,vbCritical,"Не удалось загрузить страницу"
End if


Ну вот пример наваял на скорую руку - с mail.ru дёргает данные из таблиц с курсами, погодой и т.п ( загрузив страницу, перебирает таблицы с классом frame )

Код упрощён до минимума - так что разобраться проблем не буит я думаю :)

6a6auKa
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.11.2007 (Чт) 23:18

Сообщение 6a6auKa » 22.11.2007 (Чт) 0:55

ALX_2002
спасибо большое! Очень помог!!

6a6auKa
Начинающий
Начинающий
 
Сообщения: 13
Зарегистрирован: 15.11.2007 (Чт) 23:18

Сообщение 6a6auKa » 28.11.2007 (Ср) 0:39

Ещё раз спасибо, а как сделать так чтобы считывал разные теги и
выводил разные сообщения, т.е. если произошла ошибка, там к примеру
неверный логин пароль, программа считала страницу и вывела в Label
инфу, а если заход был удачным, то считать другие теги и вывести
другую инфу. Вот кусок моего кода, но он НЕ РАБОТАЕТ:

For Each Element In Ie.Document.All.tags("p", "div")
If Element.ClassName = "err" Then
LabelMain.Caption = "Неверный логин/пароль"
Exit Sub
End If
If Element.ClassName = "hint" Then
LabelMain.Caption = "Добро пожаловать"
Exit Sub
End If
Next

Так же пробовал и разбивать отдельно "p" и "div".. результат, при ошибке данные выдаёт, а при удачном заходе - ноль эмоций


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 62

    TopList  
cron