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

引言:

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

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

目录

一、准备工作

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

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

二、代码实现

三、代码解析



一、准备工作

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

二、代码实现

python 复制代码
import os  
import requests  
from bs4 import BeautifulSoup  
from urllib.parse import urljoin  
from urllib.request import urlretrieve  
  
def download_images(url, save_dir):  
    """  
    下载指定网页上的所有图片并保存到本地文件夹  
  
    :param url: 目标网页的URL  
    :param save_dir: 图片保存的目录  
    """  
    # 创建保存图片的目录  
    if not os.path.exists(save_dir):  
        os.makedirs(save_dir)  
  
    # 发送HTTP请求  
    response = requests.get(url)  
    response.raise_for_status()  # 如果请求失败,抛出异常  
  
    # 使用BeautifulSoup解析页面  
    soup = BeautifulSoup(response.text, 'html.parser')  
  
    # 查找所有的图片链接  
    image_links = soup.find_all('img')  
  
    # 下载并保存图片  
    for img in image_links:  
        img_url = img.get('src')  
  
        # 如果图片链接是相对路径,则将其转换为绝对路径  
        if not img_url.startswith(('http://', 'https://')):  
            img_url = urljoin(url, img_url)  
  
        # 下载图片  
        img_name = os.path.join(save_dir, img_url.split('/')[-1])  
        urlretrieve(img_url, img_name)  
  
        print(f"Downloaded: {img_name}")  
  
# 使用示例  
url = "https://example.com"  # 替换为你要爬取的网页的URL  
save_dir = "images"  # 图片保存的目录  
download_images(url, save_dir)

三、代码解析

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

四、注意事项

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

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

相关推荐
承渊政道1 小时前
【Python编程—从入门到实践】(记分与闯关:用Python+Pygame,打造越战越精彩的太空大战!)
开发语言·python·pycharm·游戏程序·pygame
爱学习的程序媛1 小时前
Python常用框架梳理
开发语言·后端·python·ai·web·后端框架·python框架
imgsq1 小时前
GESP Python 一到四级:备考路线与真题特点
python·青少年编程
eggwyw3 小时前
Anaconda安装卸载的详细流程指南
开发语言·python
2601_967979123 小时前
纯手写:Python安装pip完整教程,搞了几小时,终于成功
python·教程·pip·安装·包管理
Norna3 小时前
缓存文件从没写出来:一个 .json 被当成目录用了
python
aifannihao6 小时前
AI 学习第 14 课:CNN 训 6 轮卡在 0.5352,数据没打乱
pytorch·python·深度学习·cnn·学习路线
yuyuxun16 小时前
协同过滤的校园二手物品智能推荐系统的设计与实现 毕业设计-附源码40082
javascript·vue.js·spring boot·python·数据分析·django·课程设计
如夏倾城7 小时前
百度文心(容易被忽略的好用AI)使用方式
人工智能·python·百度·语言模型·dubbo
用户019027581617 小时前
quotes 实时价和 klines 最新收盘价为什么对不上?
python