Announcement

Collapse
No announcement yet.

Auslesen von Text aus einem „WebBrowser“ Objekt

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Auslesen von Text aus einem „WebBrowser“ Objekt

    Ich versuche gerade Text aus einem „WebBrowser“ Objekt (System.Windows.Forms.WebBrowser) auszulesen, jedoch ohne Erfolg.
    Problembeschreibung
    Dies ist die Ausgangssituation – die Web-Seite des Web Shops ist geladen.
    1.jpg
    Drücke ich nun auf den Pfeil (siehe oben), dann erhalte ich das untere Bild in einer strukturierten Tabelle. Zu erkennen ist auch, daß der „HTTP-Link“ sich dabei nicht verändert. Bei einen „Refresh“ der Web Site erhalte ich somit wieder das Bild wie oben dargestellt.
    2.jpg
    Meine Versuche bisher:
    Die klassischen „Save As“ Funktionen (z.B.
    Code:
    WebBrowser1.Document.ExecCommand("SaveAs", False, "FileName.htm"
    ) scheitern hier, weil der Text in der zuvor gezeigten Tabelle nicht in dem Objekt: „WebBrowser1.DocumentText“ steht.
    3.jpg
    Auch der Versuch über ADODB und CDO funktionieren auch nicht.
    Code:
    Private Sub SavePage(ByVal Url As String, ByVal FilePath As String)
          Dim iMessage As CDO.Message = New CDO.Message
          iMessage.CreateMHTMLBody(Url, CDO.CdoMHTMLFlags.cdoSuppressObjects, "", "")
     
          Dim adodbstream As ADODB.Stream = New ADODB.Stream
          adodbstream.Type = ADODB.StreamTypeEnum.adTypeText
          adodbstream.Charset = "US-ASCII"
          adodbstream.Open()
          iMessage.DataSource.SaveToObject(adodbstream, "_Stream")
          adodbstream.SaveToFile(FilePath, ADODB.SaveOptionsEnum.adSaveCreateOverWrite)
     
       End Sub
    Es werden zwar nun die beiden HTML Dateien „kopfdaten.htm” und “dummy_warenkorb.htm” erstellt, jedoch stehen dort nicht die Daten drin die in der obigen Tabelle stehen.

    Speichere ich hingegen die „IDS Testseite“ im IE oder FF, dann erhalte ich mein Ergebnis sauber gespeichert. Jedoch möchte ich die Daten per Programm speichern, oder besser noch in einer Variablen halten und dann weiter bearbeiten bzw. auswerten.

    Frage:
    Hat jemand eine Idee wie ich an die „sichtbaren Daten“ heran komme. Gehen sollte es, weil IE und FF es ja auch können.

  • #2
    Gehen sollte es, weil IE und FF es ja auch können.
    Ein schlagendes Argument. Nur ist das WebbrowserObjekt kein vollwertiger HTTP-Client. Gehen wird es, wenn du die gleiche Technik anwendest. Auf den Bildern ist nichts zu erkennen. Somit der Versuch zu raten, dass dort wahrscheinlich ein AJAX-Request ausgeführt wird. Dafür spricht
    Zu erkennen ist auch, daß der „HTTP-Link“ sich dabei nicht verändert.
    oder es wird nur per Javascript in den DOM gesetzt.

    Warum schaust du dir den Quelltext nicht an?

    Also ggf. Seite holen, Javascript parsen, Request senden, Ergebnis entgegen nehmen
    Zuletzt editiert von Christian Marquardt; 19.08.2012, 10:05.
    Christian

    Comment


    • #3
      Ich hatte zwar den Source Code geprüft, jedoch keine für mich erkennbaren Auffälligkeiten entdeckt. Ja, es werden AJAX-Request(s) verwendet.
      Werde mal "die Seite holen" und schauen, daß ich den Request erwische.

      Comment


      • #4
        Auslesen von Text aus einem „WebBrowser“ Objekt

        Die Verbindung zu dem Webshop funktioniert nun tadellos. Das „Zauberwort“ war recht simple – WEBSERVER. Diesen Webserver mußte ich lediglich zwischen meiner Anwendung und dem Webshop (Webserver) zwischenschalten.

        Rufe ich nun den WebShop auf, so gebe ich im IE oder FF oder meiner Anwendung folgendes ein:
        HTML Code:
        http://localhost:4711/MeinHttpServerRequest/MeineSeite.html
        Der Webserver verwendet dann die Adresse, die im HTML Skript steht.

        Die Rückantwort erfolgt dann über via der HOOKURL über den gleichen Weg. Im "Body" Text steht dann die XML-Antwort drin. Ein "parsen" des Java Skripts ist nicht erforderlich.

        Comment

        Working...
        X