目录
- 前言
- 开发环境:
- 案例实现的步骤:
- 代码展示
- 尾语 💝
前言
嗨喽~大家好呀,这里是魔王呐 ❤ ~!
图片数据在网络中随处可见, 如果需要一些图片素材
一睹为快把! ! !
开发环境:
-
解释器: python 3.8
-
编辑器: pycharm 2022.3 专业版
内置模块使用
- os >>> 操作文件系统的模块
第三方模块使用
-
selenium >>> web 的自动化测试工具
-
requests >>> 用来发送网络请求
-
parsel >>> 用于解析JSON数据的Python
第三方模块安装:
-
win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车
-
在pycharm中点击Terminal(终端) 输入安装命令
如果出现爆红, 可能是因为 网络连接超时, 可切换国内镜像源,命令如下:
pip install -i https://pypi.doubanio.com/simple/ requests
python资料、源码、教程\福利皆: 点击此处跳转文末名片获取
案例实现的步骤:
-
找数据对应的链接地址
-
使用代码发送网络请求
-
数据解析技术(提取需要的数据)
-
数据保存
代码展示
# 用到什么库我就导入什么
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)
尾语 💝
要成功,先发疯,下定决心往前冲!
学习是需要长期坚持的,一步一个脚印地走向未来!
未来的你一定会感谢今天学习的你。
—— 心灵鸡汤
本文章到这里就结束啦~感兴趣的小伙伴可以复制代码去试试哦 😝