Bitte entschuldigen Sie meine Naivität mit diesem Thema. Ich bin ein pensionierter Programmierer, der vor DOS gestartet wurde. Ich bin kein Experte für ASP.NET. Ein Teil dessen, was ich wissen muss, ist, was ich wissen muss. (Wenn Sie mir folgen ...)Konsolen-App zur Anmeldung bei der ASP.NET-Website
Also ich möchte auf einer Website einloggen und einige Inhalte scrape. Nach dem Betrachten der HTML-Quelle mit Notepad und fiddler2 ist es für mich klar, dass die Site mit ASP.NET-Technologien implementiert ist.
Ich begann mit viel google'ing und las alles, was ich über das Schreiben von scraper in C# finden konnte. Nach einigen Nachforschungen und vielen Versuchen bin ich zu dem Schluss gekommen, dass es nicht einfach ist.
Der Kern des Problems (wie ich es jetzt sehe) ist, dass ASP viele Möglichkeiten für einen Programmierer bietet, den Zustand zu erhalten. Cookies, Viewstate, Session-Vars, Seiten-Vars, Get-und Post-Params usw. Außerdem kann der Programmierer die Arbeit zwischen Server- und Client-Scripting aufteilen. Ein reicher Web-Client wie IE oder Safari oder Chrome oder Firefox weiß, wie er mit dem, was der Programmierer schreibt, umgehen kann (und das ASP-Framework implementiert unter dem Deckblatt).
WebClient ist kein Rich Web Client. Es weiß nicht einmal, wie man Cookies implementiert.
Also bin ich in einer Sackgasse. Ein Weg zu gehen ist zu versuchen, alle Funktionen des Rich-Client, die ASP-Anwendung erwartet Reverse Engineering und schreiben einen WebClient auf Steroiden Klasse, die einen reichen Client gut genug nachahmt, um eingeloggt zu sein.
Oder ich könnte versuchen Einbetten von IE (oder einem anderen Rich Client) in meine App und hoffen, dass die exponierte Schnittstelle reich genug ist, dass ich ein Feld für Benutzername und Passwort programmgesteuert ausfüllen und das Formular zurücksenden kann. (Und Zugriff auf den Antwort-Stream, damit ich den HTML-Code analysieren kann, um die Daten herauszuschneiden ...)
Oder ich könnte nach einem Drittanbieter-Steuerelement suchen, das viel reicher wäre, dass WebClient.
Kann mir jemand einen guten Einblick geben, wo ich meine Aufmerksamkeit konzentrieren sollte?
Dies ist ebenso eine Lernerfahrung wie ein Projekt. Das heißt, ich möchte den Login und den Abruf von Informationen von der Zielseite aus wirklich automatisieren.
Siehe http://stackoverflow.com/questions/1777221/using-cookiecontainer-with-webclient-class, wie Cookies mit WebClient verwendet werden können. – abatishchev
Was Sie tun, heißt [web crawling] (http://stackoverflow.com/questions/tagged/web-crawler) – abatishchev