En este video te enseñare como puedes reconocer caracteres a partir de un archivo de imagen.
Etiqueta: c# .net
Quiero aprender C# .Net, instalación y explicación para novatos.
En este video te enseñare cuales son los pasos que debes seguir para comenzar a programar en C# .Net.
¿Qué son y para qué sirven las interfaces en C#?, Programación Orientada a Objetos
En este video te explicare para que sirven las interfaces en C#, que son y cómo se utilizan o para que ayudan a un programador.
¿Qué es y para qué sirve Generics en C# .Net? Explicación y ejemplo real, .Net Core
En este video te explicare que son los Generics, como puedes usarlos en tus clases para que reutilices su funcionalidad.
¿Cómo crear un respaldo de una base de datos Mysql desde C# .Net?, MySqlBackup.Net
En este video te enseñare como puedes hacer de manera rápida y segura, un respaldo de una base de datos en Mysql a un archivo con extensión Sql.
¿Cómo leer una hoja de cálculo en google drive desde C# .Net Core?, Google Sheets API
En este video te mostrare como puedes leer los valores alojados en una hoja de cálculo de google drive desde C# .Net Core.
Curso de Web scraping en C# .Net
En este nuevo curso te mostrare como puedes hacer web scraping de manera fácil y rápida con C# .Net.
1.- Obtener contenido HTML, seleccionar elementos por clase, nombre, id
En este video te muestro como puedes seleccionar elementos de una página web de manera natural, utilizando su clase, su id o su nombre de etiqueta.
2.- Guardar contenido de un sitio web en base de datos
En este segundo video te enseñare a como puedes guardar el contenido de un sitio web en una base de datos.
3.- Descargar todas las imágenes de una url
En este tercer video te enseñare como puedes descargarte todas las imagenes que se visualizan en una url de un sitio web.
4.- Descargar todas las imágenes de TODO un sitio web
En este video te enseñare a como navegar por todas las ligas de una url e ir recursivamente url por url del sitio entero descargando las imagenes.
Código fuente
using HtmlAgilityPack; using ScrapySharp.Extensions; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Text; using WebScraping.Models; namespace WebScraping { class Program { static List<string> lstYaInvocadas = new List<string>(); static List<string> lstImagenesDescargadas = new List<string>(); static string pathImages = @"C:\tuRuta\"; static void Main(string[] args) { HtmlWeb oWeb = new HtmlWeb(); string url = "https://hdeleon.net/"; /*Video: 2 - Obtener titles ***********************************************/ using (webscrapingEntities db = new webscrapingEntities()) { for (int i = 1; i <= 32; i++) { if (i > 1) url += "/page/" + i + "/"; HtmlDocument doc2 = oWeb.Load(url); foreach (var Nodo in doc2.DocumentNode.CssSelect(".entry-title")) { var NodoAnchor = Nodo.CssSelect("a").First(); var oTitle = new titles(); oTitle.title = NodoAnchor.InnerHtml; db.titles.Add(oTitle); //MisTitulos.Add(NodoAnchor.InnerHtml); } Console.WriteLine("se analizo la pagina: "+i); } db.SaveChanges(); } /* Video 3 - Ejemplo de robar imagenes ********************************************/ HtmlDocument doc = oWeb.Load(url); //obtenemos las imagenes int num = 0; foreach (var Nodo in doc.DocumentNode.CssSelect("img")) { Console.WriteLine("Imagen robada: " + Nodo.GetAttributeValue("src")); using (WebClient oClient = new WebClient()) { string urlImagen = Nodo.GetAttributeValue("src"); oClient.DownloadFile(new Uri(urlImagen), pathImages + num + ".jpg"); } num++; } /*Video 4 - Obtener todas las imagenes de todo el sitio web *************************/ HtmlDocument doc3 = oWeb.Load(url); //obtener las imagenes de la url foreach (var Nodo in doc3.DocumentNode.CssSelect("img")) { // Console.WriteLine("Imagen robada: " + Nodo.GetAttributeValue("src")); using (WebClient oClient = new WebClient()) { string urlImagen = Nodo.GetAttributeValue("src"); string[] arrUrlImagen = urlImagen.Split('/'); string nombreImagen = pathImages + arrUrlImagen[arrUrlImagen.Length - 1]; if (!lstImagenesDescargadas.Contains(arrUrlImagen[arrUrlImagen.Length - 1])) { oClient.DownloadFile(new Uri(urlImagen), nombreImagen); lstImagenesDescargadas.Add(arrUrlImagen[arrUrlImagen.Length - 1]); } } } //recursividad urls foreach (var Nodo in doc3.DocumentNode.CssSelect("a")) { string urlSon = Nodo.GetAttributeValue("href"); if (!lstYaInvocadas.Contains(urlSon) && urlSon.StartsWith("https://hdeleon.net/")) { Console.WriteLine(urlSon); lstYaInvocadas.Add(urlSon); ObtienesImagenes(urlSon); } } } #region Helpers private static void ObtienesImagenes(string url,string tab="") { try { HtmlWeb oWeb = new HtmlWeb(); HtmlDocument doc3 = oWeb.Load(url); foreach (var Nodo in doc3.DocumentNode.CssSelect("img")) { // Console.WriteLine("Imagen robada: " + Nodo.GetAttributeValue("src")); using (WebClient oClient = new WebClient()) { string urlImagen = Nodo.GetAttributeValue("src"); string[] arrUrlImagen = urlImagen.Split('/'); string nombreImagen =pathImages+ arrUrlImagen[arrUrlImagen.Length - 1]; if (!lstImagenesDescargadas.Contains(arrUrlImagen[arrUrlImagen.Length - 1])) { oClient.DownloadFile(new Uri(urlImagen), nombreImagen); lstImagenesDescargadas.Add(arrUrlImagen[arrUrlImagen.Length - 1]); } } } foreach (var Nodo in doc3.DocumentNode.CssSelect("a") ) { string urlSon = Nodo.GetAttributeValue("href"); if ( !lstYaInvocadas.Contains(urlSon) && urlSon.StartsWith("https://hdeleon.net/")) { Console.WriteLine(tab+urlSon); lstYaInvocadas.Add(urlSon); ObtienesImagenes(urlSon, tab + ">"); } } } catch { } } #endregion } }
Vectores y matrices en C# .Net, explicados con borrachos
En este video te enseñare como funcionan los arreglos en c# .net con una explicación de la vida real, utilizando borrachos.
¿Qué es static en programación orientada a objetos? C# .Net
En este video te explico rápidamente que es static en c# .Net, y es algo que generalmente los lenguajes de programación orientados a objetos manejan.