• Python爬虫实战:图片爬取与保存


    引言:
            在本文中,我们将学习如何使用Python创建一个简单的图片爬虫

            我们将利用requests来发送HTTP请求,BeautifulSoup来解析HTML页面,以及osshutil库来下载和保存图片。通过这个教程,你将学会如何爬取网页上的图片并保存到本地。

    目录

    一、准备工作

    在开始之前,请确保你已经安装了Python,并且安装了以下库:

    你可以使用以下命令来安装这些库:

    二、代码实现 

    三、代码解析



    一、准备工作

    在开始之前,请确保你已经安装了Python,并且安装了以下库:
    • requests用于发送HTTP请求
    • beautifulsoup4用于解析HTML页面
    你可以使用以下命令来安装这些库:
    pip install requests beautifulsoup4

    二、代码实现 

    1. import os
    2. import requests
    3. from bs4 import BeautifulSoup
    4. from urllib.parse import urljoin
    5. from urllib.request import urlretrieve
    6. def download_images(url, save_dir):
    7. """
    8. 下载指定网页上的所有图片并保存到本地文件夹
    9. :param url: 目标网页的URL
    10. :param save_dir: 图片保存的目录
    11. """
    12. # 创建保存图片的目录
    13. if not os.path.exists(save_dir):
    14. os.makedirs(save_dir)
    15. # 发送HTTP请求
    16. response = requests.get(url)
    17. response.raise_for_status() # 如果请求失败,抛出异常
    18. # 使用BeautifulSoup解析页面
    19. soup = BeautifulSoup(response.text, 'html.parser')
    20. # 查找所有的图片链接
    21. image_links = soup.find_all('img')
    22. # 下载并保存图片
    23. for img in image_links:
    24. img_url = img.get('src')
    25. # 如果图片链接是相对路径,则将其转换为绝对路径
    26. if not img_url.startswith(('http://', 'https://')):
    27. img_url = urljoin(url, img_url)
    28. # 下载图片
    29. img_name = os.path.join(save_dir, img_url.split('/')[-1])
    30. urlretrieve(img_url, img_name)
    31. print(f"Downloaded: {img_name}")
    32. # 使用示例
    33. url = "https://example.com" # 替换为你要爬取的网页的URL
    34. save_dir = "images" # 图片保存的目录
    35. download_images(url, save_dir)

    三、代码解析

    • 导入库:首先,我们导入了所需的库,包括osrequestsBeautifulSoupurllib.parseurllib.request
    • 定义函数:我们定义了一个名为download_images的函数,它接受两个参数url(目标网页的URL)和save_dir(图片保存的目录)
    • 创建保存目录:如果指定的保存目录不存在,我们将创建它。
    • 发送HTTP请求:使用requests.get方法发送HTTP请求,并使用response.raise_for_status检查请求是否成功。
    • 解析页面:使用BeautifulSoup解析HTML页面,并查找所有的标签,以获取图片链接。
    • 下载并保存图片:遍历每个图片链接,将其转换为绝对路径(如果需要),并使用urlretrieve方法下载图片然后,将图片保存到指定的目录,并打印出下载的文件名。
    • 使用示例:最后,我们提供了一个使用示例,包括目标网页的URL和图片保存的目录。

    四、注意事项

    • 在使用爬虫时,请确保遵守目标网站的robots.txt文件和使用条款,并尊重他人的版权和隐私。
    • 不要对网站造成过大的压力或进行恶意爬取。
    • 可以根据需要进一步扩展此代码,例如增加错误处理、添加代理支持、限制并发请求数、使用异步IO等。

    通过本文的学习,你已经掌握了如何使用Python创建一个简单的图片爬虫。你可以根据自己的需求进一步扩展和优化这个爬虫。记得在使用爬虫时要遵守相关规定和法律法规,尊重他人的权益。

  • 相关阅读:
    DevEco Studio鸿蒙虚拟机
    本地服务启动慢问题及dubbo测试方法记录
    【Spring Boot】关系映射开发(二):一对多映射
    vue路由原理
    springboot+mp:瑞吉外卖
    C++:容器list的介绍及使用
    Oracle数据库相关操作(20220709)
    GAN入门|第二篇:人脸图像生成(DCGAN)
    javaweb JAVA JSP零食销售系统购物系统ssm购物系统购物商城系统源码(ssm电子商务系统)网上零食在线销售
    Codeforces Round #786 (Div. 3) 补题记录
  • 原文地址:https://blog.csdn.net/2202_75568470/article/details/136287925