Holen Sie HTML-von Rahmen mithilfe von WebBrowser-Steuerelement - unauthorizedaccessexception

Ich bin auf der Suche nach einem kostenlosen tool oder dlls, die ich verwenden können, zu schreiben, meine eigenen code in .NET-Prozess einige web-Anfragen.
Sagen wir, ich habe eine URL mit einigen query-string-Parameter ähnlich http://www.example.com?param=1 und wenn ich es in einem browser mehrere Umleitungen auftreten, und schließlich HTML gerendert wird, dass ein frameset ein frame-innere html, enthält eine Tabelle mit Daten, die ich brauche. Ich möchte speichern Sie diese Daten in die externe Datei in einem CSV-format. Offensichtlich werden die Daten unterscheiden sich je nach der querystring-parameter param. Sagen wir, ich möchte die Anwendung ausführen und generieren Sie 1000 CSV-Dateien für die param-Werte von 1 bis 1000.

Habe ich gute Kenntnisse in .NET, javascript, HTML, aber das Hauptproblem ist, wie die endgültige HTML-server-code.

Was ich versucht habe ist, ich habe eine neue Form-Anwendung Hinzugefügt, die ein webbrowser-Steuerelement und verwendet code wie folgt:

private void FormMain_Shown(object sender, EventArgs e)
    {
        var param = 1; //test
        var url = string.Format(Constants.URL_PATTERN, param);

        WebBrowserMain.Navigated += WebBrowserMain_Navigated;
        WebBrowserMain.Navigate(url);
    }

    void WebBrowserMain_Navigated(object sender, WebBrowserNavigatedEventArgs e)
    {
        if (e.Url.OriginalString == Constants.FINAL_URL)
        {
            var document = WebBrowserMain.Document.Window.Frames[0].Document;
        }
    }

Aber leider habe ich receieve unauthorizedaccessexception da wohl Rahmen und das Dokument in verschiedenen Domänen. Hat jemand eine Idee, wie dies zu umgehen und vielleicht eine andere Marke neuen Ansatz zur Implementierung von Funktionen wie diese?

  • Es ist nicht klar, werden Sie versuchen, führen Sie diese Winforms-app auf der server-Seite?
  • Ich habe keinen Zugriff auf die server, das ist der winforms-app, die ich gebaut haben, und rufen Sie aus clientseitiger, der versucht, navigieren Sie zu dem externen server, indem Sie die URL zu den HTML-ich habe keine Kontrolle zu. Dann brauche ich zur Verarbeitung des HTML, um die notwendigen Daten zur Tabelle.
  • Versuchen handling DocumentCompleted statt Navigated. Besser noch, Sie sind nach dem DOM - window.onload event der top-Seite. Überprüfen Sie diese für weitere Informationen: stackoverflow.com/a/19283143/1768303
  • DocumentCompleted, macht keinen Unterschied - unauthorizedaccessexception. Ich bin nicht in der Lage, Zugriff auf den html-Code, der im inneren des RAHMENS.
  • Wenn Sie sicher sind, dass die URL der innere Rahmen ist aus einer anderen Domäne, hier ist, wie Sie bekommen können, um den Rahmen, es ist schwierig: stackoverflow.com/q/3508317/1768303
InformationsquelleAutor Ihor Deyneka | 2013-10-29
Schreibe einen Kommentar