mail mail

Скачивание исходного кода web-страницы в текстовый файл

Данная функция возвращает исходный текст web-страницы:

Function GetHTTPResponse(ByVal sURL As String) As String
    On Error Resume Next
    Set oXMLHTTP = CreateObject("MSXML2.XMLHTTP")
    With oXMLHTTP
        .Open "GET", sURL, False
        ' раскомментируйте следующие строки и подставьте верные IP, логин и пароль
       ' если вы сидите за proxy
       ' .setProxy 2, "192.168.100.1:3128"
       ' .setProxyCredentials "user", "password"
       .send
        sHTMLBody = .responseBody
    End With
    For i = 0 To UBound(sHTMLBody)
        GetHTTPResponse = GetHTTPResponse & ChrW(AscW(Chr(AscB(MidB(sHTMLBody, i + 1, 1)))))
    Next
    Pi.Hide
    Set oXMLHTTP = Nothing
End Function

Пример использования функции GetHTTPResponse

Private Sub ПримерИспользованияФункции_GetHTTPResponse()
    ' считываем исходный текст страницы ExcelVBA.ru в переменную txt
   txt = GetHTTPResponse("http://ExcelVBA.ru")
    ' получаем путь к папке "Рабочий стол"
   ПутьКРабочемуСтолу = CreateObject("WScript.Shell").SpecialFolders("Desktop")
    ' сохраняем текст из переменной txt в файл PageText.txt на рабочем столе
   SaveTXTfile ПутьКРабочемуСтолу & "\PageText.txt", txt
    ' открываем созданный текстовый файл в Excel
   Workbooks.OpenText ПутьКРабочемуСтолу & "\PageText.txt"
End Sub

Function SaveTXTfile(ByVal filename As String, ByVal txt As String) As Boolean
    On Error Resume Next: Err.Clear
    Set fso = CreateObject("scripting.filesystemobject")
    Set ts = fso.CreateTextFile(filename, True)
    ts.Write txt: ts.Close
    SaveTXTfile = Err = 0
    Set ts = Nothing: Set fso = Nothing
End Function

PS: Если вас интересует ТЕКСТ страницы - используйте эту функцию: http://excelvba.ru/code/GetWebPageText

ВложениеРазмер
GetHTTPResponse.xls25 КБ

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
CAPTCHA
Подтвердите, пожалуйста, что вы - человек:
5 + 13 =
Решите эту простую математическую задачу и введите результат. Например, для 1+3, введите 4.