Maison  >  Article  >  développement back-end  >  Explorez les images du site Web et téléchargez-les automatiquement localement

Explorez les images du site Web et téléchargez-les automatiquement localement

WBOY
WBOYoriginal
2023-06-13 13:28:503195parcourir

À l'ère d'Internet, les gens se sont habitués à télécharger des photos à partir de divers sites Web tels que des galeries et des plateformes sociales. Si vous n'avez besoin de télécharger qu'un petit nombre d'images, l'opération manuelle n'est pas fastidieuse. Cependant, si un grand nombre d'images doivent être téléchargées, l'opération manuelle deviendra très longue et laborieuse. À l'heure actuelle, la technologie d'automatisation doit être utilisée pour réaliser le téléchargement automatique des images.

Cet article explique comment utiliser la technologie de robot d'exploration Python pour télécharger automatiquement des images du site Web vers l'ordinateur local. Ce processus est divisé en deux étapes : la première étape consiste à utiliser la bibliothèque de requêtes de Python ou la bibliothèque Selenium pour récupérer les liens d'images sur le site Web ; la deuxième étape consiste à télécharger les images au niveau local via l'urllib ou la bibliothèque de requêtes de Python en fonction des résultats obtenus. links.

Première étape : obtenir le lien de l'image

  1. Utilisez la bibliothèque de requêtes pour explorer le lien

Voyons d'abord comment utiliser la bibliothèque de requêtes pour explorer le lien de l'image. L'exemple de code est le suivant :

import requests
from bs4 import BeautifulSoup

url = 'http://example.com'
response = requests.get(url)
soup = BeautifulSoup(response.content, 'html.parser')

img_tags = soup.find_all('img')

urls = [img['src'] for img in img_tags]

En prenant l'exemple de site Web Exemple, utilisez d'abord la bibliothèque de requêtes pour explorer le contenu Web et utilisez la bibliothèque BeautifulSoup pour analyser le HTML. Ensuite, nous utilisons la méthode soup.find_all('img') pour obtenir toutes les balises img en HTML, et utilisons les compréhensions de liste pour extraire la valeur de l'attribut src dans chaque balise. soup.find_all('img') 方法来获取 HTML 中所有的 img 标签,并使用列表解析式将每个标签中的 src 属性的值提取出来。

  1. 使用 selenium 库爬取链接

另一种获取图片链接的方式是使用 selenium 库,示例代码如下:

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from time import sleep

url = 'http://example.com'

options = Options()
options.add_argument('--headless')

service = Service('/path/to/chromedriver')
driver = webdriver.Chrome(service=service, options=options)
driver.get(url)

sleep(2)

img_tags = driver.find_elements_by_tag_name('img')

urls = [img.get_attribute('src') for img in img_tags]

这里我们使用了 ChromeDriver,使用时需要先将自己电脑上的 ChromeDriver 的路径填入到示例代码中的 'path/to/chromedriver' 处。第二行代码启用无头浏览器,避免在 Chrome 浏览器窗口中进行操作,提高运行速度。然后我们使用 selenium 库中的 webdriver 模块建立了一个 Chrome 浏览器的实例,通过设置 driver.get(url) 来打开 Example 网站。然后使用 driver.find_elements_by_tag_name('img') 获取到所有的 img 标签,进而获取每个标签中的 src 属性的值。

第二步:下载图片

下载图片的方式有多种,这里我们使用 Python 自带的 urllib 库或者 requests 库来下载。示例代码如下:

import urllib.request

for url in urls:
    filename = url.split('/')[-1]
    urllib.request.urlretrieve(url, filename)

这里使用 urllib.request 库将图片从网络上下载到本地,使用 url.split('/')[-1] 来获取图片的文件名,并将其赋值给变量 filename,最后使用 urllib.request.urlretrieve(url, filename) 将图片下载到本地。需要注意的是,如果 url 中包含中文,还需要对 url 进行编码处理。

这里再简单介绍一下使用 requests 库下载图片的方法,示例代码如下:

import requests

for url in urls:
    filename = url.split('/')[-1]
    response = requests.get(url)
    with open(filename, 'wb') as f:
        f.write(response.content)

这里使用 requests 库获取图片二进制文件,将其写入文件。需要注意的是,由于二进制文件写入模式为 'wb',需要使用 with open(filename, 'wb') as f:

    Utilisez la bibliothèque Selenium pour explorer les liens

    Une autre façon d'obtenir des liens d'images consiste à utiliser la bibliothèque Selenium. L'exemple de code est le suivant :

    rrreee🎜Ici, nous utilisons ChromeDriver, vous avez besoin. pour l'utiliser d'abord, remplissez le chemin de ChromeDriver sur votre ordinateur vers 'path/to/chromedriver' dans l'exemple de code. La deuxième ligne de code active un navigateur sans tête, ce qui évite de fonctionner dans la fenêtre du navigateur Chrome et augmente la vitesse. Ensuite, nous utilisons le module webdriver dans la bibliothèque Selenium pour créer une instance du navigateur Chrome et ouvrir l'exemple de site Web en définissant driver.get(url). Utilisez ensuite driver.find_elements_by_tag_name('img') pour obtenir toutes les balises img, puis obtenez la valeur de l'attribut src dans chaque balise. 🎜🎜Étape 2 : Télécharger des images 🎜🎜Il existe de nombreuses façons de télécharger des images. Ici, nous utilisons la propre bibliothèque d'urllib de Python ou la bibliothèque de requêtes à télécharger. L'exemple de code est le suivant : 🎜rrreee🎜Ici, nous utilisons la bibliothèque urllib.request pour télécharger des images d'Internet vers le local, utilisez url.split('/')[-1] pour obtenir le nom de fichier de l'image, et attribuez-le au nom de fichier variable, et enfin utilisez urllib.request.urlretrieve(url, filename) pour télécharger l'image localement. Il convient de noter que si l’url contient du chinois, elle doit également être codée. 🎜🎜Voici une brève introduction sur la façon d'utiliser la bibliothèque de requêtes pour télécharger des images. L'exemple de code est le suivant : 🎜rrreee🎜Ici, nous utilisons la bibliothèque de requêtes pour obtenir le fichier binaire de l'image et l'écrire dans le fichier. Il convient de noter que puisque le mode d'écriture du fichier binaire est 'wb', vous devez utiliser with open(filename, 'wb') as f: pour ouvrir le fichier. et Écrivez, en vous assurant que chaque fichier est correctement fermé. 🎜🎜Résumé🎜🎜En résumé, grâce à la technologie de robot d'exploration Python, nous pouvons facilement explorer les images sur le site Web et les télécharger automatiquement localement. Cette technologie d'automatisation peut nous aider à améliorer l'efficacité du travail et est très utile pour les travaux nécessitant le traitement d'un grand nombre d'images. Dans le même temps, il convient de rappeler que l’exploration des images provenant de sites Web doit être conforme aux lois et réglementations en vigueur et respecter les droits d’auteur du site Web. Si vous n'avez pas d'autorisation ou d'autorisation officielle du site Web, n'explorez pas les images sur le site Web sans autorisation. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn