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:
- 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. - 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. - 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 atributosrc
de cada elemento<img>
. - Cree URL de imágenes absolutas utilizando la clase
Url y la propiedad
BaseURI de la clase
HTMLDocument
. - Para cada URL absoluta, cree una solicitud utilizando el constructor RequestMessage(url).
- Utilice el método Context.Network.Send(request) del documento para enviar la solicitud. La respuesta se verifica para garantizar que haya sido exitosa.
- 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:
- 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. - Utilice el método
GetElementsByTagName(“link”) para recopilar todos los elementos
<link>
. - Para filtrar imágenes que no son iconos, utilice el método
Where()
que filtra la colección según la expresiónlink => link.GetAttribute("rel") == "icon"
. Por lo tanto, la coleccióniconos
contendrá sólolinks
con un atributorel
con el valoricon
. - 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 atributohref
de cada elemento<link>
. - Cree URL de iconos absolutos utilizando la clase
Url y la propiedad
BaseURI de la clase
HTMLDocument
. - Luego, para cada URL absoluta, cree una solicitud utilizando la clase RequestMessage.
- Utilice el método Context.Network.Send(request) del documento para enviar la solicitud. La respuesta se verifica para garantizar que haya sido exitosa.
- 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.