Innanzitutto, scusate la mia ingenuità con questo argomento. Sono un programmatore in pensione che è iniziato prima che il DOS fosse in circolazione. Non sono un esperto di ASP.NET. Parte di ciò che devo sapere è ciò che ho bisogno di sapere. (Se mi segui ...)App Console per accedere al sito Web ASP.NET
Quindi voglio accedere a un sito Web e raschiare alcuni contenuti. Dopo aver esaminato il codice sorgente HTML con Blocco note e Fiddler2, è chiaro che il sito è implementato con tecnologie ASP.NET.
Ho iniziato facendo un sacco di google e leggendo tutto ciò che riuscivo a trovare sulla scrittura di screen scrapers in C#. Dopo alcune indagini e molti tentativi, penso di essere giunto alla conclusione che non è facile.
Il nocciolo del problema (come lo vedo ora) è che ASP fornisce molti modi per un programmatore di mantenere lo stato. Cookie, viewstate, vars di sessione, vars di pagine, get e post param, ecc. Inoltre il programmatore può dividere il lavoro tra lo scripting di server e client. Un ricco client Web come IE o Safari o Chrome o Firefox sa come gestire qualsiasi cosa il programmatore scrive (e gli strumenti del framework ASP sotto le copertine).
WebClient non è un client Web ricco. Non sa nemmeno come implementare i cookie.
Quindi sono in un vicolo cieco. Un modo per andare è provare a decodificare tutte le funzionalità del rich client che l'applicazione ASP si aspetta e scrivere un WebClient sulla classe steroidi che simula un rich client abbastanza bene da essere loggato.
Oppure potrei provare incorporare IE (o qualche altro rich client) nella mia app e sperare che l'interfaccia esposta sia abbastanza ricca da poter riempire a livello di codice un nome utente e un campo password e POST restituire il modulo. (E accedere al flusso di risposta in modo da poter analizzare l'HTML per raschiare i dati che sto dopo ...)
Oppure potrei cercare qualche controllo di terze parti che sarebbe molto più ricco di WebClient.
Qualcuno può dare qualche spunto su dove concentrare la mia attenzione?
Questa è un'esperienza di apprendimento quanto un progetto. Detto questo, desidero davvero automatizzare il login e il recupero delle informazioni dal sito di destinazione.
Vedere http://stackoverflow.com/questions/1777221/using-cookiecontainer-with-webclient-class come utilizzare i cookie con WebClient. – abatishchev
Quello che stai facendo si chiama [web crawling] (http://stackoverflow.com/questions/tagged/web-crawler) – abatishchev