Extraer imágenes del sitio web – ejemplos de C#

Supongamos que es un desarrollador web, diseñador gráfico, investigador, periodista o estudiante, en una palabra, una persona que trabaja en su propio proyecto. En ese caso, obviamente necesitarás imágenes para tu proyecto en el proceso de desarrollo. Para descargar imágenes de un sitio web manualmente, se necesita mucho tiempo. Tendrá que copiar la URL de cada imagen y luego guardarla, pero puede usar la biblioteca Aspose.HTML for .NET para extraer imágenes del sitio web mediante programación.

En este artículo, veremos cómo extraer de un sitio web varios tipos de imágenes utilizando Aspose.HTML for .NET API. El uso de nuestra biblioteca C# le ayudará a descargar imágenes del sitio web. Es mejor que cavar y buscarlos manualmente. ¡Intentémoslo! ¡Extraiga imágenes del sitio web mediante programación!

Extraer imágenes del sitio web: código C#

La mayoría de las imágenes en un documento HTML se representan mediante el elemento <img>. A continuación se muestra un ejemplo de cómo utilizar Aspose.HTML for .NET para buscar imágenes especificadas por este elemento. Entonces, para descargar imágenes del sitio web, debes seguir algunos pasos:

  1. Utilice el constructor HTMLDocument(Url) para crear una instancia de la clase HTMLDocument y pásele la URL del sitio web desde el que desea buscar imágenes.
  2. Utilice el método GetElementsByTagName(“img”) para recopilar todos los elementos <img>. El método devuelve una lista de los elementos <img> del documento HTML.
  3. Utilice el método Select() para crear una colección distinta de URL de imágenes relativas y el método GetAttribute(src) para extraer el atributo src de cada elemento <img>.
  4. Cree URL de imágenes absolutas utilizando la clase Url y la propiedad BaseURI de la clase HTMLDocument.
  5. Para cada URL absoluta, cree una solicitud utilizando el constructor RequestMessage(url).
  6. Utilice el método Context.Network.Send(request) del documento para enviar la solicitud. La respuesta se verifica para garantizar que haya sido exitosa.
  7. Finalmente, si la respuesta fue exitosa, use el método File.WriteAllBytes() para guardar cada imagen en un archivo local.
 1// Open a document you want to download images from
 2using var document = new HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-shapes/");
 3
 4// Collect all <img> elements
 5var images = document.GetElementsByTagName("img");
 6
 7// Create a distinct collection of relative image URLs
 8var urls = images.Select(element => element.GetAttribute("src")).Distinct();
 9
10// Create absolute image URLs
11var absUrls = urls.Select(src => new Url(src, document.BaseURI));
12
13foreach (var url in absUrls)
14{
15    // Create an image request message
16    using var request = new RequestMessage(url);
17
18    // Extract image
19    using var response = document.Context.Network.Send(request);
20
21    // Check whether a response is successful
22    if (response.IsSuccess)
23    {
24        // Save image to a local file system                    
25        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
26    }
27}

Nota: Es importante cumplir con las leyes de derechos de autor y obtener el permiso o la licencia adecuados antes de utilizar imágenes guardadas con fines comerciales. No apoyamos la extracción de datos ni el uso de archivos de otras personas con fines comerciales sin su permiso.

Extraer iconos – código C#

Los iconos son un tipo de imagen en documentos HTML que se especifican mediante elementos <link> con el atributo rel establecido en icon. Veamos cómo extraer íconos de un sitio web usando la biblioteca Aspose.HTML for .NET:

  1. Utilice el constructor HTMLDocument(Url) para crear una instancia de la clase HTMLDocument y pásele la URL del sitio web del que desea extraer iconos.
  2. Utilice el método GetElementsByTagName(“link”) para recopilar todos los elementos <link>.
  3. Para filtrar imágenes que no son iconos, utilice el método Where() que filtra la colección según la expresión link => link.GetAttribute("rel") == "icon". Por lo tanto, la colección iconos contendrá sólo links con un atributo rel con el valor icon.
  4. Utilice el método Select() para crear una colección distinta de URL de iconos relativos y el método GetAttribute(“href”) para extraer el atributo href de cada elemento <link>.
  5. Cree URL de iconos absolutos utilizando la clase Url y la propiedad BaseURI de la clase HTMLDocument.
  6. Luego, para cada URL absoluta, cree una solicitud utilizando la clase RequestMessage.
  7. Utilice el método Context.Network.Send(request) del documento para enviar la solicitud. La respuesta se verifica para garantizar que haya sido exitosa.
  8. Si la respuesta fue exitosa, use el método File.WriteAllBytes() para guardar iconos en un archivo local. Como resultado, tendrá una colección de íconos del sitio web en su carpeta local.
 1// Open a document you want to download icons from
 2using var document = new HTMLDocument("https://docs.aspose.com/html/net/message-handlers/");
 3
 4// Collect all <link> elements
 5var links = document.GetElementsByTagName("link");
 6
 7// Leave only "icon" elements
 8var icons = links.Where(link => link.GetAttribute("rel") == "icon");
 9
10// Create a distinct collection of relative icon URLs
11var urls = icons.Select(icon => icon.GetAttribute("href")).Distinct();
12
13// Create absolute icon URLs
14var absUrls = urls.Select(src => new Url(src, document.BaseURI));
15
16foreach (var url in absUrls)
17{
18    // Create a downloading request
19    using var request = new RequestMessage(url);
20
21    // Extract icon
22    using var response = document.Context.Network.Send(request);
23
24    // Check whether a response is successful
25    if (response.IsSuccess)
26    {
27        // Save icon to a local file system                    
28        File.WriteAllBytes(Path.Combine(OutputDir, url.Pathname.Split('/').Last()), response.Content.ReadAsByteArray());
29    }
30}

Puede utilizar estos ejemplos de C# para automatizar la extracción de todas las imágenes del sitio web, lo que puede resultar útil para tareas como archivar, investigar, analizar contenido web o cualquier otra aplicación de uso personal. Además, esto es excelente para diseñadores y desarrolladores web que desean extraer imágenes de sitios sin profundizar en el código fuente.

Puede descargar los ejemplos completos de C# y los archivos de datos desde GitHub.

Aspose.HTML ofrece Aplicaciones web HTML que son una colección en línea de convertidores, fusiones, herramientas de SEO, generadores de código HTML, herramientas de URL y más gratuitos. Las aplicaciones funcionan en cualquier sistema operativo con un navegador web y no requieren ninguna instalación de software adicional. Convierta, fusione, codifique, genere código HTML, extraiga datos de la web o analice páginas web en términos de SEO fácilmente dondequiera que esté. Utilice nuestra colección de aplicaciones web HTML para realizar sus asuntos diarios y hacer que su flujo de trabajo sea fluido.

Texto “Aplicaciones web HTML”

Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.