Wie mit einer website interagieren, ohne einen browser?
Sagen, ich bin Aufbau einer c# - Anwendung.
Der Zweck der Anwendung :
- get username & Passwort vom Benutzer.
- und zeigen einige Informationen auf der website.
in den hintergrund, nach der Einnahme von Benutzername und Passwort, es sollte :
- log-in auf einer Webseite mit diesen Anmeldeinformationen.
- und klicken Sie auf den Anker-link, das erscheint nach der Anmeldung.
- finden Sie heraus, die Spanne, die halten Sie die info.
- die info.
dass war ein Beispiel. Ich bin tatsächlich für eine app zu zeigen, die Bandbreitennutzung Informationen.
Der server ist nicht auszusetzen, API für.
Gibt es irgendwelche Tutorials/Infos/Artikel zur Verfügung, die für ähnliche Zwecke ? Ich weiß nur nicht, was Sie suchen ?
Dies ist nicht, was deine eigentliche Frage fragt, sondern "mit einer website interagieren, ohne einen browser" lynx - technisch ein browser, aber es ist eine terminal-Anwendung. Nicht sicher, wenn es verfügbar ist auf Windows aber ...
es muss sein, c#
Es gibt Klassen wie
haben Sie die Antwort in Ihren tags, httpwebrequest/response, oder der webClient-wrapper
Sie nicht haben, um eine Konsole-Anwendung. muss nur c#
es muss sein, c#
Es gibt Klassen wie
HTTPwebRequest
und HTTPwebResponse
werden kann, aber auf Konsole Anwendung, die ich nicht kenne. Und im web ist es schwer zu simulieren, das click-Ereignis. hier ist ein link forums.asp.net/t/1439779.aspx/1haben Sie die Antwort in Ihren tags, httpwebrequest/response, oder der webClient-wrapper
Sie nicht haben, um eine Konsole-Anwendung. muss nur c#
InformationsquelleAutor Bilal Fazlani | 2012-12-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Grundlegende Einführung In HttpWebRequests
Erstens, Sie gehen zu müssen, um die richtigen Werkzeuge für den job. Gehen und laden Sie die Live-HTTP-Header plugin für Firefox. Dies ermöglicht es Ihnen, um HTTP-Header in Echtzeit, so dass Sie können die POST-Daten, die gesendet wird, wenn Sie mit der website interagieren. Sobald Sie wissen, die Daten, die gesendet wird, um die website, die Sie emulieren kann den Prozess, indem Sie Ihre eigenen HTTP-requests programmatisch. Werkzeug - > Live-HTTP-Header
Laden Live HTTP Header, indem Sie Tools - > Live-HTTP-Header. Sobald Sie geladen haben, die GUI navigieren Sie zu der website, die Sie möchten, loggen Sie sich ein, ich werde Facebook für Demo-Zwecke. Geben Sie Ihre Anmeldeinformationen bereit für den login, aber bevor Sie das tun, Klar die GUI-text-Fenster und stellen sicher, dass das Kontrollkästchen mit der Bezeichnung Erfassen aktiviert ist. Wenn Sie auf der Anmeldung sehen Sie das Fenster SMS-Flut mit verschiedenen Informationen über die Anforderungen, einschließlich der POST-Daten, die Sie benötigen.
Ich finde es am besten, klicken Sie auf Speichern Alle... und suchen Sie anschließend Ihren Benutzernamen in das text-Dokument, so dass Sie identifizieren können, die POST-Daten einfach. Für meinen Antrag auf die POST-Daten sah wie folgt aus:
Kann dann definiert werden, die in C# etwa so:
Ich bin mit dem Ziel, Ihnen zu zeigen, die Beziehung zwischen den POST-Daten, die wir senden können, 'manuell' über den web-browser und wie wir Sie nutzen können, diese Daten zu emulieren, die Anfrage in C#. Verstehen, dass das senden von POST-Daten ist weit von deterministischen. Verschiedene websites arbeiten auf unterschiedliche Weise und werfen alle möglichen Dinge, die Ihren Weg. Unten ist eine Funktion, die ich zusammen gestellt habe zu überprüfen, dass die Facebook-Anmeldedaten korrekt sind. Ich kann nicht und sollte nicht gehen in außergewöhnlichen Tiefe, wie hier die Klassen und Ihre Mitglieder sind auch selbst dokumentiert. Finden Sie bessere Informationen als ich bieten kann, über die Methoden verwendet, bei MSDN zum Beispiel, WebRequest.Method-Eigenschaft
nach dem login erfolgreich mit diesem code. Kann man den browser gehen, und navigieren Sie in facebook ohne Eingabe der Anmeldedaten im browser wieder? Ich meine, muss der Benutzer die Sitzung aktiv gehalten wird, als ob wir die Anmeldung direkt über den browser?
InformationsquelleAutor Caster Troy
Jedem HTTP-client-Implementierung, es gibt Unmengen von open-source-Bibliotheken. Blick auf curl zum Beispiel. Einige dude eine .NET wrapper für es.
InformationsquelleAutor littleadv
Können Sie weiterhin mit WebClient POST (anstelle von GET, das ist das HTTP-verb, die Sie gerade verwenden mit DownloadString), aber ich glaube, Sie finden es einfacher, mit zu arbeiten die (leicht) senken-level-Klassen WebRequest und WebResponse.
Besteht aus zwei teilen - der erste ist die post des login-Formulars, die zweite ist die Wiederherstellung der "Set-cookie" - header, und senden diese zurück an den server als "Cookie" zusammen mit Ihrer Anfrage BEKOMMEN. Der server verwendet dieses cookie, um Sie zu identifizieren, von nun an (vorausgesetzt, es ist über cookie-basierte Authentifizierung, die ich bin ziemlich zuversichtlich, es ist so, die Seite gibt eine Set-cookie-header, die beinhaltet, "PHPSESSID").
Klicken Sie Hier, um im Detail Überprüfen
InformationsquelleAutor andy
Beispielcode auf Ergreifende Inhalt (Screen Scraping)
Beispielcode auf, wie man Post-Daten an remote-Web-Seite mit HttpWebRequest
Quelle
InformationsquelleAutor शेखर