vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#

https://www.vbarchiv.net
Rubrik: HTML/Internet/Netzwerk · WebBrowser   |   VB-Versionen: VB2005, VB200822.02.10
Snapshot einer kompletten Internetseite

Ein kleines Beispiel, wie man eine komplette Intenetseite "fotografieren" und abspeichern kann.

Autor:   Mario WeichertBewertung:  Views:  11.835 
www.pixcore.deSystem:  Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Hier einmal ein kleines Beispiel, wie man den Inhalt einer ganzen Internetseite als Bild festhalten kann.
Auf eine visuelle Darstellung der Internetseite in einem WebBroser Control wird hier verzichtet.

Fangen wir an...
Als erstes fügen wir unserer Anwendung folgende Deklaration hinzu:

Imports System.Drawing
Imports System.Drawing.Imaging
Imports System.Windows.Forms

Als nächstes schreiben wir eine Public Function, um den Code von überall aus unserer Anwendung aufrufen zu können. Nennen wir unsere Funktion mal "Webshot":

''' <summary>
''' Erstellt einen Snapshot vom Inhalt einer beliebigen Webseite
''' </summary>
''' <param name="URL">URl der Webseite</param>
''' <returns>Bitmap-Objekt mit dem Inhalt der Webseite als Bild</returns>
Private Function WebShot(ByVal URL As String) As Bitmap
  ' Neues WebBrowser-Objekt erstellen
  Dim wb As New WebBrowser()
 
  With wb
    ' Scrollbars ausblenden
    .ScrollBarsEnabled = False
 
    ' Fehlermeldungen unterdrücken
    .ScriptErrorsSuppressed = True
 
    ' URL aufrufen
    .Navigate(URL)
 
    ' Warten, bis Seite geladen ist
    While .ReadyState <> WebBrowserReadyState.Complete
      Application.DoEvents()
    End While
 
    ' Größe des Browserfensters festlegen
    .Width = .Document.Body.ScrollRectangle.Width
    .Height = .Document.Body.ScrollRectangle.Height
 
    ' Bitmap in der festgelegten Größe erstellen
    Dim bitmap As New Bitmap(.Width, .Height)
 
    ' Inhalt des WebBroewsers als Bitmap speichern
    .DrawToBitmap(bitmap, New Rectangle(0, 0, .Width, .Height))
 
    ' Ressourcen freigeben
    .Dispose()
 
    ' Bitmap-Objekt zurückgeben
    Return (bitmap)
  End With
End Function

Die Funktion lädt die Internetseite in ein unsichtbares WebBrowser-Control, erstellt einen Snapshot und gibt das Bild dann als Bitmap-Objekt zurück.

Den Snapshot kann man dann bspw. in einem PictureBox-Control wie folgt anzeigen...

Me.Cursor = Cursors.WaitCursor
PictureBox1.Image = WebShot("http://www....")
Me.Cursor = Cursors.Default
... oder auch direkt als Bilddatei abspeichern:

Me.Cursor = Cursors.WaitCursor
With WebShot("http://www....")
  .Save("d:\temp\test.jpg", Imaging.ImageFormat.Jpeg)
End With
Me.Cursor = Cursors.Default



Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
 
Copyright ©2000-2024 vb@rchiv Dieter OtterAlle Rechte vorbehalten.


Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.