2012-04-15 17 views
27

Soy (era) un desarrollador de Python que está construyendo una aplicación de raspado web GUI. Recientemente decidí migrar a .NET framework y escribir la misma aplicación en C# (esta decisión no fue mía).navegador sin cabeza para C# (.NET)?

En Python, he utilizado la biblioteca Mechanize. Sin embargo, parece que no puedo encontrar nada similar en .NET. Lo que necesito es un navegador que se ejecute en un modo sin cabeza, que tenga la capacidad de completar formularios, enviarlos, etc. El analizador de JavaScript no es obligatorio, pero sería bastante útil.

+1

Una versión diy que no necesita ninguna otra biblioteca: http://stackoverflow.com/a/1995667/17034 –

+0

http://stackoverflow.com/questions/12059752/run-and-control-browser-control -en-diferente-hilo Eso funciona para mis necesidades. –

Respuesta

29

hay algunas opciones:

  • WebKit.Net (gratis)

  • Awesomium
    Se basa en Chrome/WebKit y funciona como un encanto. No es una licencia libre disponible, sino también una comercial y si es necesario se puede comprar el código fuente :-)

  • HTML Agility Pack (gratis)
    Esto ayuda a extraer información de HTML, etc., y podría ser útil en su caso (posiblemente en combinación con HttpWebRequest)

+2

Gracias. Hmm, corrígeme si estoy equivocado, pero ¿no es necesario que todos estos (o al menos los dos primeros) creen una interfaz de usuario (pensé que al leer los documentos)? Lo que necesito es un navegador sin cabeza, entonces uno sin GUI. –

+1

@Deusdies NO - al menos el segundo (Awesomium) y el tercer enlace (HTML Agility Pack) funcionan completamente sin cabeza ... con el primer enlace no estoy seguro ... – Yahia

+0

@Deusdies por ejemplo Awesomium - de acuerdo con los documentos (ver http://awesomium.com/docs/1_6_5/sharp_api/) le da píxeles SI quiere que los renderice en una IU, si no es necesario. – Yahia

3

usted puede estar después TrifleJS (actualmente en beta), o algo similar utilizando la clase .NET WebBrowser que se comunica con el IE a través de una API/COM ActiveX sin ventanas.

Básicamente, ejecutará un navegador completamente desarrollado (no un contenedor de solicitud http) utilizando el motor Trident de Internet Explorer, si no está interesado en la API de JavaScript (un puerto de phantomjs) puede que todavía pueda usar de la base de código C# para evitar conceptos clave (encabezados personalizados, cookies, ejecución de scripts, representación de captura de pantalla, etc.).

Tenga en cuenta que esto también puede emular diferentes versiones de IE dependiendo de lo que haya instalado.

enter image description here

7

Más soluciones:

  • PhantomJS - completa web sin cabeza ofrecido navegador. A menudo se usa en pares con Selenium, lo que le permite acceder al navegador desde la aplicación .NET.
  • Optimus (nuget package) - navegador web liviano sin cabeza. Está en beta, pero es suficiente para algunos casos.

Solía ​​usar ambos para pruebas en la web. Pero también son adecuados para raspar web.

+1

Un enlace a una posible solución siempre es bienvenido, pero agregue contexto alrededor del enlace para que su compañero los usuarios tendrán una idea de qué es y por qué está allí. Siempre cite la parte más relevante de un enlace importante, en caso de que el sitio objetivo no esté disponible o esté permanentemente fuera de línea. Tenga en cuenta que ser un poco más que un enlace a un sitio externo es una posible razón para [¿Por qué y cómo se eliminan algunas respuestas?] (Http://stackoverflow.com/help/deleted-answers) –

+0

Gracias, muchachos. He actualizado mi respuesta. – Knyaz

+0

La promoción excesiva de un producto/recurso específico puede ser percibida por la comunidad como ** spam **. Eche un vistazo a la [ayuda], especialmente [¿Qué tipo de comportamiento se espera de los usuarios?] (// stackoverflow.com/help/behavior) última sección: _Evite la autopromoción abierta_. También podría estar interesado en [¿Cómo publicitario en Stack Overflow?] (// stackoverflow.com/help/advertising). – FrankerZ

Cuestiones relacionadas