web-dev-qa-db-fra.com

Navigateur sans tête pour C # (.NET)?

Je suis (étais) un développeur Python qui construit une application de scraping Web GUI. Récemment, j'ai décidé de migrer vers le framework .NET et d'écrire la même application en C # (cette décision n'était pas mien).

En Python, j'ai utilisé la bibliothèque Mechanize. Cependant, je n'arrive pas à trouver quelque chose de similaire dans .NET. Ce dont j'ai besoin, c'est d'un navigateur qui fonctionnera en mode sans tête, qui a la capacité de remplir des formulaires, de les soumettre, etc. L'analyseur JavaScript n'est pas un must, mais il serait très utile.

34
Bo Milanovich

Il y a quelques options:

  • WebKit.Net (gratuit)

  • Awesomium
    Il est basé sur Chrome/WebKit et fonctionne comme un charme. Il existe une licence gratuite mais aussi commerciale et si besoin est vous pouvez acheter le code source :-)

  • Pack d'agilité HTML (gratuit)
    Cela aide à extraire des informations de HTML, etc. et pourrait être utile dans votre cas (éventuellement en combinaison avec HttpWebRequest )

32
Yahia

Plus de solutions:

  • PhantomJS - navigateur web sans tête complet. Souvent utilisé en association avec Selenium qui vous permet d'accéder au navigateur depuis l'application .NET.
  • Optimus ( paquet nuget ) - navigateur web léger sans tête. C'est en version bêta mais c'est suffisant dans certains cas.

J'avais l'habitude d'utiliser les deux pour les tests Web. Mais ils conviennent également au grattage de bande.

11
Knyaz

Vous pouvez être après TrifleJS (actuellement en version bêta), ou quelque chose de similaire en utilisant le . NET WebBrowser = classe qui communique avec IE via une API ActiveX/COM sans fenêtre.

Vous exécuterez essentiellement un navigateur à part entière (pas un wrapper de demande http) à l'aide du moteur Trident d'Internet Explorer, si vous n'êtes pas intéressé par l'API JavaScript (un port de phantomjs ), vous pourrez peut-être encore d'utiliser une partie de la base de code C # pour contourner les concepts clés (en-têtes personnalisés, cookies, exécution de script, rendu de capture d'écran, etc.).

Notez que cela peut également émuler différentes versions de IE selon ce que vous avez installé.

enter image description here

5
Steven de Salas