Webbrowser mit eigenem UserAgent !?

  • VB.NET

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von aldituete.

    Webbrowser mit eigenem UserAgent !?

    Servus :)

    ich hab da mal ein dringliches Problem. Ich versuche schon die ganze Zeit einen Webbrowser mit eigenem Useragent zum laufen zu bringen.
    Soweit ich weiß, ist die einzige Möglichkeit ein httpWebRequest zu verwenden. D.h. erstmal die Seite herunterladen und dann mit dem Webbrowser-Control
    parsen. Hier bin ich schon gescheitert... Ein anderes Problem wäre ,wenn die Webseite dann tatsächlich mal dargestellt wird, dass wenn man dann auf einen
    Link klicken würde, der Link dann wieder automatisch mit dem IE-Useragent aufgerufen wird (oder nicht?). Das müsste man dann auch noch lösen.

    Hier mein erster Versuch:

    VB.NET-Quellcode

    1. Public Sub DownloadWebpage(ByVal URL As String)
    2. Dim myHttpWebRequest As HttpWebRequest = CType(WebRequest.Create(URL), HttpWebRequest)
    3. myHttpWebRequest.UserAgent = ".NET Framework Test Client"
    4. ' The response object of 'HttpWebRequest' is assigned to a 'HttpWebResponse' variable.
    5. Dim myHttpWebResponse As HttpWebResponse = CType(myHttpWebRequest.GetResponse(), HttpWebResponse)
    6. ' Display the contents of the page to the console.
    7. Dim streamResponse As Stream = myHttpWebResponse.GetResponseStream()
    8. Dim streamRead As New StreamReader(streamResponse)
    9. Dim readBuff(256) As [Char]
    10. Dim count As Integer = streamRead.Read(readBuff, 0, 256)
    11. 'TextBox2.Text &= vbCrLf & (ControlChars.Cr + "The contents of HTML Page are :" + ControlChars.Cr)
    12. While count > 0
    13. Dim outputData As New [String](readBuff, 0, count)
    14. 'TextBox2.Text &= vbCrLf & (outputData)
    15. 'webbrowser1.parse_die_verdammte_Seite :D
    16. count = streamRead.Read(readBuff, 0, 256)
    17. End While
    18. streamRead.Close()
    19. streamResponse.Close()
    20. ' Release the response object resources.
    21. myHttpWebResponse.Close()
    22. End Sub


    Vergesst den Versuch - der ist Mist! :D Ich hab' eine sehr simple Lösung gefunden:

    VB.NET-Quellcode

    1. WebBrowser1.Navigate("http://www.wieistmeineip.de/", "", Nothing, "Referer: http://google.de" & vbCrLf & "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0" & vbCrLf & "Accept-Language: de-de" & vbCrLf)


    Jetzt habe ich nurnoch das Problem, dass der Useragent bei jedem Linkklick wieder zurückgesetzt wird.
    Hat jemand ne Idee wie man das lösen kann? :)

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „aldituete“ ()

    Problem erkannt - Problem gebannt!

    Ok ich habe das Problem selber gelöst:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Dim referrer As String = "http://youtube.com"
    3. Dim schalter As Boolean = False
    4. Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    5. WebBrowser1.Navigate("http://www.wieistmeineip.de/", "", Nothing, "Referer: " & referrer & vbCrLf & "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0" & vbCrLf & "Accept-Language: de-de" & vbCrLf)
    6. End Sub
    7. Private Sub WebBrowser1_DocumentCompleted(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEventArgs) Handles WebBrowser1.DocumentCompleted
    8. schalter = True
    9. referrer = WebBrowser1.Url.ToString
    10. End Sub
    11. Private Sub WebBrowser1_Navigating(ByVal sender As Object, ByVal e As System.Windows.Forms.WebBrowserNavigatingEventArgs) Handles WebBrowser1.Navigating
    12. If schalter = True Then
    13. e.Cancel = True
    14. WebBrowser1.Navigate(e.Url.ToString, "", Nothing, "Referer: " & referrer & vbCrLf & "User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:5.0) Gecko/20110619 Firefox/5.0" & vbCrLf & "Accept-Language: de-de" & vbCrLf)
    15. schalter = False
    16. End If
    17. End Sub
    18. End Class