python爬不同图片分别保存在不同文件夹中的实现

下面针对该话题给出完整的攻略,包括流程和示例说明。

流程说明

要实现python爬不同图片分别保存在不同文件夹中,大致的流程可以概括为以下几个步骤:

  1. 定位需要爬取的目标页面,了解其URL及HTML结构;
  2. 使用Python爬虫库(比如requests、BeautifulSoup等),获取目标页面的HTML代码;
  3. 从HTML代码中获取所需的图像URL、标题或标签等信息;
  4. 分别保存每个图像到不同的文件夹中,需要建立好文件夹目录;
  5. 将以上过程封装成一个函数供重复调用使用。

下面通过示例进行演示。

示例说明

示例一:爬取豆瓣电影封面,按照电影名称分类保存

以下示例演示如何从豆瓣电影中爬取电影封面,并按照电影名称分类保存。具体步骤如下:

  1. 打开豆瓣电影页面(比如“https://movie.douban.com/chart”),在页面中查找需要爬取的内容,并确定其HTML结构。

  2. 编写代码进行页面抓取、信息提取、分类保存等操作。其中,可以使用 requests 和 BeautifulSoup 库,具体代码如下:

import requests
from bs4 import BeautifulSoup
import os

# 网页地址
base_url = 'https://movie.douban.com/chart'
# 请求头信息
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}

# 获取网页HTML代码
res = requests.get(base_url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')

# 查找电影信息
movie_list = soup.select('#content div div table tr')
for movie in movie_list:
    # 获取电影封面图片链接
    img_url = movie.select('.nbg img')[0].get('src')
    # 获取电影名称
    movie_name = movie.select('.pl2 a')[0].text.strip()
    # 保存路径(根据电影名称分类保存)
    save_path = os.path.join('douban_movies', movie_name)
    if not os.path.exists(save_path):
        os.makedirs(save_path)
    # 下载并保存图片
    img_data = requests.get(img_url).content
    with open(os.path.join(save_path, 'cover.jpg'), 'wb') as f:
        f.write(img_data)

以上代码首先使用requests库获取网页HTML代码,并使用BeautifulSoup库对HTML进行解析。通过查找对应元素的结构和属性,我们可以获取每部电影的封面图片链接和电影名称,并将它们保存到相应的变量中。接下来,利用os库来进行文件夹的创建和文件的保存操作。

运行以上代码后,即可在当前路径下生成一个名为douban_movies的文件夹,每部电影将按照其名称在该文件夹下创建一个子文件夹,并将其封面图片保存至该子文件夹下。

示例二:爬取Unsplash网站上的高清壁纸,按照标签分类保存

以下示例演示如何从Unsplash上爬取高清壁纸,并按照标签分类保存。具体步骤如下:

  1. 打开Unsplash页面(比如“https://unsplash.com/t/wallpapers”),在页面中查找需要爬取的内容,并确定其HTML结构。

  2. 编写代码进行页面抓取、信息提取、分类保存等操作。其中,同样可以使用 requests 和 BeautifulSoup 库,具体代码如下:

import requests
from bs4 import BeautifulSoup
import os

# 网页地址
base_url = 'https://unsplash.com/t/wallpapers'
# 请求头信息
headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36'
}

# 获取网页HTML代码
res = requests.get(base_url, headers=headers)
soup = BeautifulSoup(res.text, 'html.parser')

# 查找图片信息
photo_list = soup.select('.IEpfq')
for photo in photo_list:
    # 获取图片链接、名称和标签
    img_url = photo.select('._3fPsI')[0].get('src')
    img_name = photo.select('._2Mc8_')[0].text + '.jpg'
    img_tags = photo.select('.NpuHU')[0].text.strip().split('#')[1:]
    # 根据标签创建文件夹,下载并保存图片
    for tag in img_tags:
        save_path = os.path.join('unsplash', tag)
        if not os.path.exists(save_path):
            os.makedirs(save_path)
        img_data = requests.get(img_url).content
        with open(os.path.join(save_path, img_name), 'wb') as f:
            f.write(img_data)

以上代码与示例一类似,只是在信息提取后,将图片按照标签进行分类保存。具体来说,将图片标签通过split方法分割为一个个子标签,并将其作为文件夹名称,使用os库将其创建至对应路径下。

运行以上代码后,即可在当前路径下生成一个名为unsplash的文件夹,壁纸将按照标签名分类保存在该文件夹下的不同文件夹中。

综上所述,以上就是爬不同图片分别保存在不同文件夹中实现的完整攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python爬不同图片分别保存在不同文件夹中的实现 - Python技术站

(1)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • 使用python将excel数据导入数据库过程详解

    下面是针对该主题的详细讲解,包含以下几个部分: 环境准备 安装依赖库 导入Excel数据 连接数据库 向数据库写入数据 示例说明 总结 环境准备 在使用Python将Excel数据导入数据库之前,需要先准备好以下环境: Python解释器,建议使用最新版本; MySQL数据库及其连接工具,如MySQL Workbench。 安装依赖库 在使用Python导入…

    python 2023年5月13日
    00
  • python实现的web监控系统

    部署一个基于Python的Web监控系统,可以帮助我们监视网站或Web服务是否在线,是否出现问题,以及性能等指标数据。 以下是如何使用Python实现Web监控系统的完整攻略: 1.安装Python环境:如果您的机器没有安装Python环境,请下载Python,并安装在您的机器上。将Python添加到系统环境变量中,以便在终端中使用Python。 2.安装所…

    python 2023年5月30日
    00
  • python实现文本文件合并

    合并文本文件是将两个或多个文本文件中的内容合并成一个文本文件。在Python中,我们可以使用File I/O操作打开和读取文件,并使用字符串操作将多个文本文件中的内容整合成一个文件。 以下是实现文本文件合并的完整攻略。 步骤1:打开文件并读取内容 使用Python内置函数open()打开文件,可以通过传入文件路径和模式(读、写等)来打开文件。读取文件内容可以…

    python 2023年5月19日
    00
  • Python设置默认编码为utf8的方法

    如果你使用Python 2.x版本,可以通过在脚本开头添加以下代码来设置默认编码为utf8: # -*- coding: utf-8 -*- 这条代码告诉Python解释器,脚本中的所有文本都应当按照utf8编码解析。在Python 3.x版本,utf8已经被默认设置为编码,你不需要再做这个设置了。 另外,你也可以在Python命令行环境下以交互方式设置编码…

    python 2023年5月13日
    00
  • python实现数据写入excel表格

    这里给出一份完整的Python实现数据写入Excel表格的教程。在本教程中,我们将使用OpenPyXL库来实现这个目标。下面分为以下几个步骤: 步骤 1:安装OpenPyXL库 我们可以使用pip来安装OpenPyXL库 pip install openpyxl 步骤 2:导入OpenPyXL库 在脚本中导入OpenPyXL库以便使用其API。 import…

    python 2023年5月13日
    00
  • python opencv图片编码为h264文件的实例

    下面我就为你详细讲解一下“Python OpenCV图片编码为H264文件的实例”的完整攻略,包含以下几个步骤: 1. 安装必要的库文件 在开始编写代码之前,我们首先需要安装必要的库文件。可以使用以下命令在终端中安装: pip install opencv-python pip install imutils 2. 导入必要的库文件 在Python代码中导入…

    python 2023年5月20日
    00
  • 一个可以套路别人的python小程序实例代码

    针对“一个可以套路别人的python小程序实例代码”的完整攻略,我将按照以下步骤来讲解: 需求分析:确定小程序的功能和实现要求 编写伪代码:根据需求分析,编写伪代码 编写代码:根据伪代码,编写实际代码 测试和调试:对代码进行测试和调试,确保程序运行正常 下面我将详细讲解每个步骤的内容。 1. 需求分析 在进行编码前,首先需要确定小程序的功能和实现要求。根据该…

    python 2023年5月23日
    00
  • Python处理时间戳和时间计算等的脚本分享

    Python处理时间戳和时间计算等的脚本分享 什么是时间戳? 时间戳是指一个时间点,通常使用单位为秒的形式表示。时间戳可以通过获取自1970年1月1日00:00:00以来的秒数来表示一个时间点。例如,如果今天是2022年1月1日12:00:00,那么它的时间戳就是1641043200。 在Python中,可以使用time模块来获取当前时间的时间戳。 以下是获…

    python 2023年6月2日
    00
合作推广
合作推广
分享本页
返回顶部