Visual Basic, .NET, ASP, VBScript
 

   
   
     

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

Страница: 1 |

 

  Вопрос: VB и Интернет Добавлено: 28.05.05 21:35  

Автор вопроса:  Anya
Здравствуйте. Не могу справиться с проблемой, пытаюсь качать из Инета с помощью OpenURL или Execute, "GET". Но странички сохраняются так, как будто в браузере выбрали при сохранении тип файла html, а хорошо бы, чтобы сохранялись как txt, тогда больше информации запомнится, как быть?

Ответить

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

Номер ответа: 1
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #1
Добавлено: 28.05.05 22:07
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
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

Private 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)
bDoLoop = CBool(lNumberOfBytesRead)
Wend
If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
If hOpen <> 0 Then InternetCloseHandle (hOpen)
OpenURL = sBuffer
End Function


Функция возвращает HTML-код странички. А дальше - просто сохранить.

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #2 Добавлено: 29.05.05 01:43
Но странички сохраняются так, как будто в браузере выбрали при сохранении тип файла html, а хорошо бы, чтобы сохранялись как txt, тогда больше информации запомнится, как быть?


Можешь посчитать меня тупым, но ты явно сама не знаешь что хочешь. Ты качаешь страничку, страничка это есстно хтмл, а хочешь видеть нормальный текст. Пойми всё что ты видишь в браузере это хтмл, а в читабельный текст уже приобразовует браузер!!! Поэтому тебе придётся расслабиться, ну или самой убирать теги, парсить, ну короче доводить текст до читаемого твоим глазом. Всё конечно можно, но сложно, к тому же это даст только 80% нормального текста. Текст часто бывает изминяется под действием скриптом, которые реагируют не действия пользователя. Вообщем нормальный текст с хтмл странички в тхт файле тебе не видать. (Сорри если я не прав)

Ответить

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



ICQ: 780477 

Вопросов: 72
Ответов: 1297
 Web-сайт: dasharm.com
 Профиль | | #3
Добавлено: 29.05.05 11:11
чтобы сохранялись как txt, тогда больше информации запомнится


Премия ламера! :)

Ответить

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


 

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

Вопросов: 236
Ответов: 8362
 Профиль | | #4 Добавлено: 29.05.05 16:44
Не ну пускай даже ламера, если б ламер объяснил и понял чо сам хочет, разве мы б не помогли?

Ответить

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



ICQ: 1249088 

Вопросов: 10
Ответов: 304
 Web-сайт: sur.hotbox.ru/
 Профиль | | #5
Добавлено: 30.05.05 15:02
Если хочется текст, то есть компонент Microsoft HTML Object Library:
Сунуть ему HTML, получить текст.

Dim h As New HTMLDocument
Dim htmlstring As String
h.body.innerHTML = htmlstring
debug.print h.documentElement.innerText

Ответить

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



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

ICQ: 343368641 

Вопросов: 17
Ответов: 686
 Web-сайт: barsik.newmail.ru
 Профиль | | #6
Добавлено: 30.05.05 20:14
Но странички сохраняются так, как будто в браузере выбрали при сохранении тип файла html, а хорошо бы, чтобы сохранялись как txt, тогда больше информации запомнится


ет как так?

Ответить

Номер ответа: 7
Автор ответа:
 Black Dragon



ICQ: 321186096 

Вопросов: 30
Ответов: 347
 Web-сайт: в разработке
 Профиль | | #7
Добавлено: 31.05.05 20:13
Но странички сохраняются так, как будто в браузере выбрали при сохранении тип файла html, а хорошо бы, чтобы сохранялись как txt, тогда больше информации запомнится


ет как так?

Действительно, девушка что-то странное написала. Инфы сохраниться столько же, только размер будет разный. Но все равно хочется вставить замечание HACKER'а

Ответить

Страница: 1 |

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



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