Страница: 1 |
Страница: 1 |
Вопрос: Получение html кода страницы
Добавлено: 12.04.07 00:02
Автор вопроса: Vasiliy
К примеру задаем в текст-боксе url-адрес страницы, после чего нужно получить htnl код страницы (как файл наверное) и открыть на чтение.. буду ОЧЕНЬ признателен! :)
Ответы
Всего ответов: 13
Номер ответа: 1
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #1
Добавлено: 12.04.07 00:30
Составляешь GET-запрос вида
Host: esci.ru
Номер ответа: 2
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #2
Добавлено: 12.04.07 00:54
можно так
Private Const INTERNET_OPEN_TYPE_DIRECT = 1
Private Const INTERNET_OPEN_TYPE_PROXY = 3
Private Const scUserAgent = "VB Project"
Private Const INTERNET_FLAG_RELOAD = &H80000000
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" (ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetReadFile Lib "wininet.dll" (ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, lNumberOfBytesRead As Long) As Integer
Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Public Function OpenURL(ByVal sUrl As String) As String
Dim hOpen As Long
Dim hOpenUrl As Long
Dim bDoLoop As Boolean
Dim bRet As Boolean
Dim sReadBuffer As String * 2048
Dim lNumberOfBytesRead As Long
Dim sBuffer As String
hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
bDoLoop = True
While bDoLoop
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
If lNumberOfBytesRead = 0 Then bDoLoop = False
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
OpenURL = sBuffer
End Function
можно через
можно через сокеты
Номер ответа: 3
Автор ответа:
Дмит
Вопросов: 11
Ответов: 160
Web-сайт:
Профиль | | #3
Добавлено: 12.04.07 18:18
Может проще через Webbrowser:
http://dimit.pochta.ru/excel/webbrowser.zip
Номер ответа: 4
Автор ответа:
Vasiliy
Вопросов: 9
Ответов: 18
Профиль | | #4
Добавлено: 13.04.07 00:59
если бы еще построчно прокомментировали вообще бы цены вам не было
Номер ответа: 5
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #5
Добавлено: 13.04.07 02:35
На такие предложения у нас всегда есть готовый ответ: 20 wmz
Номер ответа: 6
Автор ответа:
Artyom
Разработчик
Вопросов: 130
Ответов: 6602
Профиль | | #6
Добавлено: 13.04.07 09:41
30 wmz
Номер ответа: 7
Автор ответа:
Vasiliy
Вопросов: 9
Ответов: 18
Профиль | | #7
Добавлено: 13.04.07 17:16
ну да это я как-то неподумав ляпнул а как насчет просто описать в двух словах алгоритм?
Номер ответа: 8
Автор ответа:
Sharp
Лидер форума
ICQ: 216865379
Вопросов: 106
Ответов: 9979
Web-сайт:
Профиль | | #8
Добавлено: 13.04.07 18:49
Алгоритм прост - берешь какую-нибудь библиотечку, позволяющую спрашиваемое, и юзаешь. В качестве вариантов были предложены: сокеты, InternetReadFile, URLDownloadToFile, компонент WebBrowser
Номер ответа: 9
Автор ответа:
Vasiliy
Вопросов: 9
Ответов: 18
Профиль | | #9
Добавлено: 16.04.07 02:04
эм.. я пока еще полный профан поэтому не знаю как это делается Воспользовался скрипто ХАКЕРа - он возвращает код страницы как огрооомную строку, вот захотелось узнать как же он работает.. хоть в двух словах.. (
Номер ответа: 10
Автор ответа:
HACKER
Разработчик Offline Client
Вопросов: 236
Ответов: 8362
Профиль | | #10
Добавлено: 16.04.07 03:02
Если тебе интересны все нюансы, нужно найти описание API функция, например в msdn'e.
В двух словах:
hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0) 'открыли узел для получения данных
bDoLoop = True
While bDoLoop 'цикл пока все данные небудут вычитаны
sReadBuffer = vbNullString
bRet = InternetReadFile(hOpenUrl, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead) 'получаем пучёк данных
sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead) 'накапливаем пучки в строку
If lNumberOfBytesRead = 0 Then bDoLoop = False 'если ничего не прочитали - данные закончились - вышли из цикла
Wend
'Закрываем все хенделы
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
OpenURL = sBuffer 'возвращаем строку
Номер ответа: 11
Автор ответа:
Vasiliy
Вопросов: 9
Ответов: 18
Профиль | | #11
Добавлено: 16.04.07 14:50
спасибо большое!
Номер ответа: 12
Автор ответа:
Vasiliy
Вопросов: 9
Ответов: 18
Профиль | | #12
Добавлено: 30.05.07 19:56
реестр
Номер ответа: 13
Автор ответа:
Vasiliy
Вопросов: 9
Ответов: 18
Профиль | | #13
Добавлено: 30.05.07 19:57
блин я хотел написать это в поиск удалите плиз