Извлечь изображения с веб-сайта на Python
В этой статье мы рассмотрим, как извлекать различные типы изображений с веб-сайтов с помощью Aspose.HTML for Python via .NET. Используя Python библиотеку, вы можете эффективно загружать изображения с веб-сайта без необходимости ручного поиска. Узнайте, как автоматизировать процесс извлечения изображений и с легкостью оптимизировать рабочий процесс. Давайте начнем извлекать изображения программно!
Извлечь изображения с веб-сайта
Большинство изображений в HTML-документе представлены с помощью элемента <img>. Вот пример того, как использовать Aspose.HTML for Python via .NET для поиска изображений, указанных этим элементом. Итак, чтобы скачать изображения с сайта, вам необходимо сделать несколько следующих шагов:
- Инициализируйте объект HTMLDocument с помощью конструктора HTMLDocument(Url) и укажите URL-адрес веб-страницы, из которой вы хотите извлечь изображения.
- Вызовите метод
get_elements_by_tag_name(“img”) документа, чтобы получить все элементы <img>. Этот метод возвращает коллекцию всех элементов<img>, найденных в HTML-документе.
- Извлеките уникальные URL-адреса изображений, перебирая собранные элементы <img>и получая доступ к их атрибутуsrcс помощью метода get_attribute(“src”). Сохраните эти URL-адреса в наборе, чтобы исключить дубликаты.
- Создайте абсолютные URL-адреса изображений, используя класс Url и свойство base_uri класса HTMLDocument, чтобы гарантировать их правильный формат для запросов.
- Для каждого абсолютного URL-адреса изображения создайте объект RequestMessage и используйте его для отправки сетевого запроса на получение изображения.
- Используйте метод документа context.network.send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Проанализируйте URL-адрес изображения, чтобы получить имя файла, затем сохраните изображение в локальной файловой системе, записав содержимое изображения в файл в назначенном выходном каталоге.
 1# Extract images from website using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Prepare output directory
 8output_dir = "output/"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Open HTML document from URL
12with ah.HTMLDocument("https://docs.aspose.com/svg/net/drawing-basics/svg-color/") as doc:
13    # Collect all <img> elements
14    images = doc.get_elements_by_tag_name("img")
15
16    # Get distinct relative image URLs
17    urls = set(img.get_attribute("src") for img in images)
18
19    # Create absolute image URLs
20    abs_urls = [ah.Url(url, doc.base_uri) for url in urls]
21
22    for url in abs_urls:
23        # Create a network request
24        request = ahnet.RequestMessage(url)
25
26        # Send request
27        response = doc.context.network.send(request)
28
29        # Check if successful
30        if response.is_success:
31            # Extract file name
32            file_name = os.path.basename(url.pathname)
33
34            # Save image locally
35            with open(os.path.join(output_dir, file_name), "wb") as f:
36                f.write(response.content.read_as_byte_array())Примечание. Прежде чем использовать сохраненные изображения в коммерческих целях, необходимо соблюдать законы об авторских правах и получить соответствующее разрешение. Мы не поддерживаем извлечение данных и использование файлов других людей в коммерческих целях без их разрешения.
Извлечь значки (иконки)
Значки – это своего рода изображения в HTML-документах, которые указываются с помощью элементов <link> с атрибутом rel, установленным в icon. Давайте посмотрим, как извлечь значки с веб-сайта с помощью Aspose.HTML for Python via .NET:
- Используйте конструктор HTMLDocument(Url), чтобы создать экземпляр класса HTMLDocument и передать ему URL-адрес веб-сайта, с которого вы хотите извлечь значки.
- Используйте метод
get_elements_by_tag_name(“link”) для сбора всех элементов <link>.
- Используйте метод
get_attribute(“rel”), чтобы получить значение атрибута relиз HTML-элемента. Отфильтруйте эти элементы, чтобы оставить только те, у которых атрибут rel равен значку, которые обычно используются для определения значков.
- Извлеките атрибут href из каждой ссылки на значок, чтобы получить относительные URL-адреса. Преобразуйте эти относительные URL-адреса в абсолютные URL-адреса, используя базовый URI документа.
- Для каждого абсолютного URL-адреса изображения создайте объект RequestMessage и используйте его для отправки сетевого запроса на получение изображения.
- Используйте метод документа context.network.send(request) для отправки запроса. Ответ проверяется, чтобы убедиться, что он был успешным.
- Если ответ указывает на успех, сохраните файл значка локально в предопределенном выходном каталоге.
 1# Extract icons from website using Python
 2
 3import os
 4import aspose.html as ah
 5import aspose.html.net as ahnet
 6
 7# Define output directory
 8output_dir = "output/icons/"
 9os.makedirs(output_dir, exist_ok=True)
10
11# Open a document you want to extract icons from
12document = ah.HTMLDocument("https://docs.aspose.com/html/python-net/")
13
14# Collect all <link> elements
15links = document.get_elements_by_tag_name("link")
16
17# Leave only "icon" elements
18icons = [link for link in links if link.get_attribute("rel") == "icon"]
19
20# Create a distinct collection of relative icon URLs
21urls = {icon.get_attribute("href") for icon in icons}
22
23# Create absolute icon URLs
24abs_urls = [ah.Url(url, document.base_uri) for url in urls]
25
26for url in abs_urls:
27    # Create a request message
28    request = ahnet.RequestMessage(url)
29
30    # Extract icon
31    response = document.context.network.send(request)
32
33    # Check whether the response is successful
34    if response.is_success:
35        # Save icon to a local file system
36        file_path = os.path.join(output_dir, os.path.basename(url.pathname))
37        with open(file_path, 'wb') as file:
38            file.write(response.content.read_as_byte_array())Вы можете использовать эти примеры Python для автоматизации извлечения всех изображений с веб-сайта. Это полезно для различных задач, таких как архивирование, исследование, анализ веб-контента или любого другого приложения для личного использования. Он также отлично подходит для веб-дизайнеров и разработчиков, которые хотят получать изображения с сайтов.
Загрузите библиотеку Aspose.HTML for Python via .NET, чтобы успешно, быстро и легко манипулировать вашими HTML-документами. Библиотека Python может создавать, изменять, извлекать данные, конвертировать и отображать HTML-документы без необходимости использования внешнего программного обеспечения. Она поддерживает популярные форматы файлов, такие как EPUB, MHTML, XML, SVG и Markdown, а также может выполнять рендеринг в форматах файлов PDF, DOCX, XPS и изображений.
Aspose.HTML предлагает Веб-приложения HTML, которые представляют собой онлайн-коллекцию бесплатных конвертеров, слияний, инструментов SEO, генераторов HTML-кода, инструментов URL, средств проверки доступности веб-страниц и многого другого. Приложения работают в любой операционной системе с веб-браузером и не требуют установки дополнительного программного обеспечения. Легко конвертируйте, объединяйте, кодируйте, генерируйте HTML-код, извлекайте данные из Интернета или анализируйте веб-страницы для SEO, где бы вы ни находились. Используйте нашу коллекцию веб-приложений HTML для выполнения повседневных задач и сделайте свой рабочий процесс безупречным!
