Python 下载 html 中的 图片

简介: Python 下载 html 中的 图片

安装 requests、beautifulsoup4 库

# 安装 requests、beautifulsoup4 库
pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple

完成代码

# pip install requests beautifulsoup4 -i https://pypi.tuna.tsinghua.edu.cn/simple
import os
import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse, urljoin
def download_images(url):
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.96 Safari/537.36"
    }
    # 发送HTTP请求并获取网页源代码
    response = requests.get(url, headers=headers)
    if response.status_code == 200:
        # 使用 BeautifulSoup 解析 HTML 内容
        soup = BeautifulSoup(response.text, "html.parser")
        # 创建一个目录来保存下载的图片
        download_dir = os.path.join(os.getcwd(), 'download_images')
        # 创建保存图片的文件夹
        os.makedirs(download_dir, exist_ok=True)
        # 获取图片链接
        image_links = []
        img_tags = soup.find_all('img')
        for img_tag in img_tags:
            # 获取图片的 URL
            img_url = img_tag.get('src')
            if img_url:
                if img_url.startswith("http"):
                    image_links.append(img_url)
                else:
                    # 将相对路径转换为绝对路径
                    img_url = urljoin(url, img_url)
                    image_links.append(img_url)
        # 下载图片并保存到文件夹
        for i, image_link in enumerate(image_links):
            img_response = requests.get(image_link, headers=headers)
            if img_response.status_code == 200:
                # 提取图片文件名
                img_filename = os.path.basename(urlparse(image_link).path)
                # 保存图片到本地
                with open(os.path.join(download_dir, img_filename), 'wb') as img_file:
                    img_file.write(img_response.content)
                print(f"Downloaded: {img_filename}")
            else:
                print(f"Failed to download image from: {img_url}")
if __name__ == "__main__":
    # url = input("Enter the URL to scrape images from: ")
    url = "http://www.vipsoft.com.cn"
    download_images(url)
目录
相关文章
|
5天前
|
存储 人工智能 开发工具
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
只需要通过向AI助理提问的方式输入您的需求,即可瞬间获得核心流程代码及参数,缩短学习路径、提升开发效率。
81 0
AI助理化繁为简,速取代码参数——使用python SDK 处理OSS存储的图片
|
18天前
|
Python
下载python所有的包 国内地址
下载python所有的包 国内地址
|
1天前
|
编解码 UED Python
Python批量修改指定目录下图片的大小名文章
Python批量修改指定目录下图片的大小名文章
7 1
|
3天前
|
iOS开发 MacOS Python
Python编程小案例—利用flask查询本机IP归属并输出网页图片
Python编程小案例—利用flask查询本机IP归属并输出网页图片
10 1
|
10天前
|
网络协议 Python
|
6天前
|
数据采集 自然语言处理 Python
用 Python 生成并识别图片验证码
用 Python 生成并识别图片验证码
13 1
|
16天前
|
数据采集 开发者 Python
Python之怎么爬取图片网站
Python之怎么爬取图片网站
|
16天前
|
API Python
使用Python requests库下载文件并设置超时重试机制
使用Python的 `requests`库下载文件时,设置超时参数和实现超时重试机制是确保下载稳定性的有效方法。通过这种方式,可以在面对网络波动或服务器响应延迟的情况下,提高下载任务的成功率。
63 1
|
17天前
|
Python
Python实现图片的拼接
Python实现图片的拼接
10 1
|
1天前
|
Python
Python实现图片的拼接
Python实现图片的拼接