Wget

Aus Thomas Wiki
Zur Navigation springen Zur Suche springen

wget ist ein freies Kommandozeilenprogramm des GNU-Projekts zum Herunterladen von Dateien aus dem Internet. Zu den unterstützten Protokollen gehören ftp, http und https. Das Programm gibt es unter anderem für Unix, GNU/Linux, OS/2, Windows und SkyOS. Es steht unter der GNU General Public License. Wget wird mit diversen Linux-Distributionen mitgeliefert.

In den MS-Office Produkten kann wget mit Visual Basic nachempfunden werden.

Download einer Datei als String (GET)

Das Makro ruft die Datei mit der Methode GET aus dem Internet ab udn gibt den Wert sie in einem String zurück.


Public Function wgetText(URL As String) As String
  
  Dim result As String
  Dim success As Boolean
  Dim oHTTP As WinHttp.WinHttpRequest
  Set oHTTP = New WinHttp.WinHttpRequest
  
  With oHTTP
    .Open Method:="GET", URL:=URL, async:=False
    .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko"
    .SetRequestHeader "Content-Type", "multipart/form-data; "
    .Option(WinHttpRequestOption_EnableRedirects) = True
    .Send
    
    success = .waitForResponse()
    If success Then
      result = .responseText
    Else
      result = "Download failed"
    End If

  End With
  
  Set oHTTP = Nothing

  wgetText = result

End Function

Download einer Datei als String (POST)

Formulare können mit den Methoden GET und POST Parameter übergeben. Während bei der Methode GET einfach die Parameter in der URL übergeben werden, werden beid er Methode POST die Daten in eien extra Block übertragen.


Public Function wgetTextPost(URL As String, PostData As String) As String

  Dim result As String
  Dim success As Boolean
  Dim oHTTP As WinHttp.WinHttpRequest
  Set oHTTP = New WinHttp.WinHttpRequest
  
  With oHTTP
    .Open Method:="POST", URL:=URL, async:=False
    .SetRequestHeader "User-Agent", "Mozilla/5.0 (Windows NT 6.1; Win64; x64; Trident/7.0; rv:11.0) like Gecko"
    .SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
    .Send (PostData)
    success = .waitForResponse()
    If success Then
      result = .responseText
    Else
      result = "Download failed"
    End If
  End With
  
  Set oHTTP = Nothing
  wgetTextPost = result
  
End Function


Test

Private Sub test()

  MsgBox wgetText("https://wiki.byggvir.de), vbOKOnly
    
End Sub