Modificar el HTML que leerá mi Navegador(aplicación de escritorio)

Iniciado por leoneras, 22 Marzo 2016, 12:36 PM

0 Miembros y 1 Visitante están viendo este tema.

leoneras

Buenos días a todos.
Lo primero me presento, Leoneras, seguidor habitual del foro, y acabo de registrarme para participar y solicitar vuestra ayuda. Y este es mi primer post.

Os presento mi problema:
Llevo un tiempo haciendo pruebas en .NET (tanto en C# como con VB) y en varios framework, pero no he conseguido lo que quiero lograr. El objetivo es que una aplicación corriendo en el escritorio sea capaz de leer el código HTML que llega a mi pc, y modificarlo antes de que mi navegador lo muestre. Ejemplos: Entro en una web que me va a mostrar textos con la palabra "p**a", y mi navegador mostrará "ESO NO SE DICE" Al estilo control paterno. Pero analizaría mucho más. Aunque sé que supone cierta perdida de velocidad en la navegación.

Hasta el momento conozco varios programas que ven el código HTML (Wireshark por ejemplo) y librerías (WinPCap) que ayudan a trabajar con los paquetes entrantes por el puerto. También he encontrado por internet soluciones tipo proxy, pero no he llegado a conseguir ningún resultado.

Actualmente me encuentro en un callejón sin salida, porque he sacado el HTML pero no antes de verlo en el navegador por lo que no me sirve. Y en las situaciones que he conseguido ver los paquetes antes que el navegador no he conseguido ver el HTML. Así que como veis ando muy perdido, nunca había trabajado este tipo de cosas.

No pido soluciones, las agradeceré de igual modo, tan solo ideas que me orienten para encontrar la situación. Aunque ahora mismo estoy ya un poco desesperado.

Ahora os presento el porque de esta necesidad:
Es un proyecto personal que me surgió como idea navegando, y aunque no soy muy bueno en este tipo de manejos complejos de .NET, quiero comprobar si sería una idea útil o no.

Alguna ayuda?, Alguna idea?, Alguna solución?
Gracias de antemano


PalitroqueZ

yo creo que para eso existen plugins en los diferentes CMS, pero si es algo que quieres programar de cero, la idea sería sectorizar la información (cuadro de textos en vez del html completo) y que sea el mismo servidor quien lo haga.
"La Economía planificada lleva de un modo gradual pero seguro a la economía dirigida, a la economía autoritaria y al totalitarismo" Ludwig Erhard

Eleкtro

#2
¿Por "navegador" te refieres a un navegador externo, o al control WebBrowser?

En el segundo caso, puedes acceder al documento antes de que sea renderizado en la instancia del navegador hospedado, para realizar las modificaciones que quieras hacer.

Un ejemplo corto:
Código (vbnet) [Seleccionar]
Private Sub WebBrowser1_Navigated(sender As Object, e As WebBrowserNavigatedEventArgs) _
Handles WebBrowser1.Navigated

   Dim doc As HtmlDocument = DirectCast(sender, WebBrowser).Document
   doc.GetElementById("id").InnerHtml = "value"

End Sub


También puedes inyectar código si te resulta mejor, etc.

Si se trata de un navegador externo, me parece una locura reinventar la rueda, pues ya existen muchos plugins profesionales que hacen exactamente eso!, como por ejemplo Greasemonkey, y lo suyo sería trabajarlo en los lenguajes soportados para el desarrollo de plugins e interoperabilidad con los eventos del navegador en cuestión para hacerlo realmente bien, en lugar de tener que hechar mano, en .Net, de metodologías más tediosas o complicadas como UI Automation para interactuar con las ventanas, eventos, texto, y etc del proceso/navegador externo.

Saludos








leoneras

Quiero hacerlo en un navegador externo. Y el hecho de querer hacerlo así es, porque sería útil a cualquiera de todos los navegadores existentes.

Y usar los plugins de los diferentes navegadores (he visto algunos) hace que solo sirva para ese navegador, y haya que hacer otro para otro navegador y así sin parar. Y cada navegador evoluciona en diferentes formas y caminos, luego es un problema.

De ahí que he optado por está idea. Pero igual estoy equivocado. Miraré el GreaseMonkey que habéis comentado por ejemplo.