硬盘有多少图片取决我的网速, Python获取硬盘少女图集

2023-05-30  本文已影响0人  颜狗一只

前言

嗨喽~大家好呀,这里是魔王呐 ❤ ~!

图片数据在网络中随处可见, 如果需要一些图片素材,

那肯定是要保存啦~但数量多时怎么一键保存呢?

快来学好,批量保存美女图片一睹为快把! ! !

开发环境:

内置模块使用

第三方模块使用

第三方模块安装:

  1. win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车

  2. 在pycharm中点击Terminal(终端) 输入安装命令

如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:

pip install -i https://pypi.doubanio.com/simple/ requests

案例实现的步骤:

  1. 找数据对应的链接地址

  2. 使用代码发送网络请求

  3. 数据解析技术(提取需要的数据)

  4. 数据保存

代码展示

# 用到什么库我就导入什么
import requests  # 数据请求模块, 第三方的模块  pip install requests
import parsel  # 数据解析模块, 第三方的模块  pip install parsel
from selenium_api import get_data
import os   # 文件目录操作,  内置模块

1.找数据对应的链接地址 不要把直播课当录播

url = 'https://diskgirl.com/imageslist'

使用代码发送网络请求, 请求的服务器可能会识别你(代码) 不给你数据

请求头字段信息: 伪装, 表示浏览器身份信息

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36'}

2.使用代码发送网络请求 <Response [200]> 是对象 基础不牢, 地动山摇

response = requests.get(url=url, headers=headers)  # 函数传参 <关键字传参>
html_data = response.text  # text从对象里面把字符串数据取出来  content 从对象里面把二进制数据取出来
# print(html_data)

3.数据解析技术(提取需要的数据) python基础 功能强大 bs4 lxml re etree

celector = parsel.Selector(html_data)  # 转化数据类型

# 相册的标题   相册的地址
divs = celector.xpath('//div[@class="col-md-4"]')  # 所有的div

for div in divs:  # 把每一个div循环拿出来, 单独操作
    # 相册的标题   相册的地址
    title = div.xpath('.//h2/text()').get()  # 相册的标题
    pic_url = div.xpath('.//div[@class="card nopadding images-relative"]/a/@href').get()  # 相册的部分地址
    # print(title, pic_url)
    print('正在下载: ', title)

    if not os.path.exists('img\\' + title):  # 如果没有改文件名在目录下
        os.mkdir('img\\' + title)

    # 构建全部的链接
    all_url = 'https://diskgirl.com' + pic_url

    # 动态js(JavaScript)<>加载的数据,  selenium 工具: 自动操作浏览器, 获取页面渲染的数据
    img_url_list = get_data(all_url)  # 图片列表

    for img_url in img_url_list:
        # 发送图片地址的请求   图片是二进制数据
        img_data = requests.get(url=img_url, headers=headers).content

4.数据保存

        # 准备文件名
        filename = img_url.split('/')[-1]

        with open(f'img\\{title}\\{filename}', mode='wb') as f:
            f.write(img_data)
            print('下载完成: ', filename)

尾语 💝

要成功,先发疯,下定决心往前冲!

学习是需要长期坚持的,一步一个脚印地走向未来!

未来的你一定会感谢今天学习的你。

—— 心灵鸡汤

本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝

上一篇下一篇

猜你喜欢

热点阅读