2010-01-27 4 views
16

ricerca di qualcosa di simile a Mechanize for .NET ...WebBrowsing in C# - Librerie, strumenti, ecc. - Qualcosa come Mechanize in Perl?

Se non sai cosa è Mechanize .. http://search.cpan.org/dist/WWW-Mechanize/

Manterrò un elenco di suggerimenti qui. Qualsiasi cosa per la navigazione/pubblicazione/raschiatura schermo (diversa da WebRequest e controllo WebBrowser).

Analisi

Web App Testing

Strumenti

  • Firebug per Firefox
  • Internet Explorer Developer Toolbar per IE
  • Chrome ha uno di troppo

Nota

WatiN è vicino a quello che sto cercando, se non si apre un browser, che è fastidioso e terribile allo stesso tempo. Dipende da cosa stai facendo.

+1

In WatiN, basta impostare la proprietà "IE.Settings.MakeNewIeInstanceVisible" su false e dare un'occhiata a "IE.Settings.AutoStartDialogWatcher". Maggiori informazioni su http://www.watin.net –

+0

Basta chiamare perl da C#, non c'è niente come la meccanizzazione del web in .NET –

risposta

2

Sto usando WatiN con grande effetto. È un modo semplice per 1) automatizzare l'input dell'utente con IE e 2) navigare nel DOM.

+0

+1 La migliore risposta finora. Grazie! – Jason

+2

WatiN richiede effettivamente l'avvio delle finestre del browser. Mechanize è solo in memoria – kenwarner

+0

È un po 'lento, ma è divertente vedere automatizzato il browser. Ancora più divertente è chiamare. Evidenzia su qualsiasi parte del DOM che stai elaborando e puoi osservare l'elaborazione. – PhilChuang

2

È necessario utilizzare lo HTML Agility Pack, che può analizzare la zuppa di tag da siti Web reali in una struttura DOM.

+2

Questo è utile per analizzare le pagine una volta ricevute, ma per il resto? Ad esempio, accedere ai siti, gestire i cookie, gestire il reindirizzamento ecc.? – Jason

+0

Utilizza la classe 'WebClient', o la classe' HtmlWeb' di HAP, o la classe 'HttpWebRequest' con un' CookieContainer'. – SLaks

+0

So che puoi farlo in questo modo in .NET, cercando qualcosa di un po 'più alto livello. Come Mechanize. Va bene se non ce n'è uno, ero solo curioso di sapere se c'era una libreria che faceva ciò che ho fatto usando WebClient, ecc. – Jason

4

È possibile utilizzare il controllo WebBrowser, che può essere automatizzato in misura.

+0

@Downvoter: perché preoccuparsi di downvotare se non si può essere disturbati a dire perché hai downvoted? Pensi che io _care_ circa 2 punti? –

+0

@Downvoter: un altro downvoter non ascoltato da –

2

È inoltre possibile utilizzare Selenium. È per i siti web di test unitari. Ha un'applicazione java che guida il browser e un'interfaccia C# in cui puoi scrivere il tuo codice. Ha anche il rovescio della medaglia di mostrare il browser, ma è abbastanza pieno di funzionalità in termini di controllo, in attesa di risposte e ottenere i risultati.

1

Design Canvas è lo strumento migliore là fuori per questo tipo di cose. Funziona con IE, Firefox, Safari o un browser in memoria. Ti consente di registrare e quindi riprodurre qualsiasi tipo di interazione web.

0

Io ho decodificato Python-Mechanize e lo ho ricreato in C#, chiamato Mechanize.NET.

https://github.com/WilliamABradley/Mechanize.NET

Questo dovrebbe auspicabilmente coprire tutti i casi di utilizzo di Mechanize, se non, o si scopre un bug, creare un problema.

utilizza .NET standard, quindi dovrebbe essere utilizzabile in tutta .NET, come ad esempio con F #, VB, ecc

Utilizza HtmlAgilityPack internamente, e si può anche ritirare il HtmlDocument per ogni pagina caricata.