如何用Python下载网页上的图片

一、流程图

flowchart TD
    A[开始] --> B[导入所需模块]
    B --> C[获取网页内容]
    C --> D[解析网页获取图片链接]
    D --> E[下载图片]
    E --> F[结束]

二、步骤及代码解释

  1. 导入所需模块

在Python中,我们可以使用requests模块来发送HTTP请求,使用BeautifulSoup模块来解析网页内容,使用os模块来处理文件操作。

import requests
from bs4 import BeautifulSoup
import os
  1. 获取网页内容

首先,我们需要使用requests模块发送一个GET请求来获取网页内容。假设我们要下载的网页是`

url = "
response = requests.get(url)
content = response.content
  1. 解析网页获取图片链接

使用BeautifulSoup模块解析网页内容,并找到所有的图片标签<img>。然后,通过获取每个图片标签的src属性,可以获取到图片的链接。

soup = BeautifulSoup(content, "html.parser")
img_tags = soup.find_all("img")
img_urls = [img["src"] for img in img_tags]
  1. 下载图片

使用requests模块发送GET请求来下载图片,并使用os模块保存图片到本地。

# 创建目录用于保存图片
os.makedirs("images", exist_ok=True)

for img_url in img_urls:
    response = requests.get(img_url)
    img_data = response.content

    # 从图片链接中提取图片文件名
    img_name = img_url.split("/")[-1]

    # 保存图片到本地
    with open(os.path.join("images", img_name), "wb") as f:
        f.write(img_data)
  1. 完整代码
import requests
from bs4 import BeautifulSoup
import os

# 获取网页内容
url = "
response = requests.get(url)
content = response.content

# 解析网页获取图片链接
soup = BeautifulSoup(content, "html.parser")
img_tags = soup.find_all("img")
img_urls = [img["src"] for img in img_tags]

# 创建目录用于保存图片
os.makedirs("images", exist_ok=True)

# 下载图片
for img_url in img_urls:
    response = requests.get(img_url)
    img_data = response.content
    
    # 从图片链接中提取图片文件名
    img_name = img_url.split("/")[-1]

    # 保存图片到本地
    with open(os.path.join("images", img_name), "wb") as f:
        f.write(img_data)

以上就是使用Python下载网页上的图片的完整流程和代码。通过这个流程,你可以轻松地下载任何网页上的图片。希望这篇文章对你有帮助!