Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: KiddKeo en 28 Febrero 2017, 12:53 pm



Título: Como podría remover el HTML de una página web con C#?
Publicado por: KiddKeo en 28 Febrero 2017, 12:53 pm
Hola buenas a todos, estoy empezando en esto de la programación y quería saber si hay alguna manera de borrar el codigo HTML de una pagina desde una string?
Por ejemplo:
La web tiene un title llamado Hola
string title = "Hola"
Como podría hacer para borrar ese código?
Gracias a todos!



Título: Re: Como podría remover el HTML de una página web con C#?
Publicado por: engel lex en 28 Febrero 2017, 14:31 pm
Te refieres un html guardado en tu pc?


Título: Re: Como podría remover el HTML de una página web con C#?
Publicado por: okik en 1 Marzo 2017, 00:51 am
hola


puedes acceder a tu hosting usando la clase WebRequestMethods:
Clase WebRequestMethods.Ftp (http://"https://msdn.microsoft.com/es-es/library/system.net.webrequestmethods.ftp(v=vs.110).aspx")

WebRequestMethods.Ftp.MakeDirectory   (para crear directorios)


WebRequestMethods.Ftp.DownloadFile    (para descargar)

Cómo: descargar archivos mediante FTP (http://"https://msdn.microsoft.com/es-es/library/ms229711(v=vs.110).aspx")


WebRequestMethods.Ftp.UploadFile    (para subir archivos)

Cómo: cargar archivos con FTP (http://"https://msdn.microsoft.com/es-es/library/ms229715(v=vs.110).aspx")


WebRequestMethods.Ftp.DeleteFile    (para eliminar archivos)



Simplemente descarga el contenido del archivo del hosting, lo modificas en una caja de texto y luego lo vuelves a subir.

En este ejemplo al pulsar Button1 descarga el archivo y lo muestra en un textBox. Al pulsar el Button2 sube el archivo y sobrescribe el original por el contenido del TextBox (si no existe lo crea)

Código
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO;
  11. using System.Net;
  12. namespace WindowsFormsApplication1
  13. {
  14.    public partial class Form1 : Form
  15.    {
  16.        public Form1()
  17.        {
  18.            InitializeComponent();
  19.        }
  20.  
  21.        private void Form1_Load(object sender, EventArgs e)
  22.        {
  23.  
  24.        }
  25.  
  26.  
  27.        private void button1_Click(object sender, EventArgs e)
  28.        {
  29.            // Get the object used to communicate with the server.
  30.            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
  31.            request.Method = WebRequestMethods.Ftp.DownloadFile;
  32.  
  33.            // This example assumes the FTP site uses anonymous logon.
  34.            request.Credentials = new NetworkCredential("anonymous","janeDoe@contoso.com");
  35.  
  36.            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
  37.  
  38.            Stream responseStream = response.GetResponseStream();
  39.            StreamReader reader = new StreamReader(responseStream);
  40.           textBox1.Text= (reader.ReadToEnd());
  41.  
  42.  
  43.            reader.Close();
  44.            response.Close();  
  45.  
  46.        }
  47.  
  48.        private void button2_Click(object sender, EventArgs e)
  49.        {
  50.            byte[] Data = System.Text.Encoding.Unicode.GetBytes(textBox1.Text);
  51.            FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://www.contoso.com/test.htm");
  52.            request.Method = WebRequestMethods.Ftp.UploadFile;
  53.            request.ContentLength = Data.Length;
  54.            request.Credentials = new NetworkCredential("anonymous","janeDoe@contoso.com");
  55.            Stream requestStream = request.GetRequestStream();
  56.            requestStream.Write(Data, 0, Data.Length);
  57.            requestStream.Close();
  58.            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
  59.            response.Close();
  60.        }
  61.    }
  62. }
  63.  





Título: Re: Como podría remover el HTML de una página web con C#?
Publicado por: Eleкtro en 1 Marzo 2017, 06:08 am
Si te refieres a eliminar el código interno, el Html, para dejar solamente el texto asignado en los atributos, campos o tags, tan solo tienes que utilizar la propiedad InnerText del tipo HtmlElement.

Tomando este documento html de ejemplo:
Código
  1. <!DOCTYPE html>
  2.    <HEAD>
  3.        <TITLE>My Title</TITLE>
  4.    </HEAD>
  5.    <BODY>
  6.        <h1>My Heading</h1>
  7.        <p>My Paragraph</p>
  8.   </BODY>
  9. </HTML>

Lo cargamos en una nueva instancia del tipo WebBrowser y...
Código
  1. string html = File.ReadAllText("C:\\Document.htm");
  2.  
  3. using (WebBrowser wb = new WebBrowser()) {
  4.    wb.ScriptErrorsSuppressed = true;
  5.    wb.DocumentText = html;
  6.    wb.Document.OpenNew(replaceInHistory: true);
  7.    wb.Document.Write(html);
  8.    wb.Refresh();
  9.  
  10.    Console.Write(wb.Document.GetElementsByTagName("HTML")[0].InnerText);
  11. }

Resultado de ejecución:
Cita de: Visual Studio's Debug Console
My Title
My Heading
My paragraph

PD: Este ejemplo es con un archivo local, pero puedes hacer lo mismo descargando una página online, por supuesto.

¡Saludos!