直接看效果:
背景:
在现代互联网中,壁纸作为一种视觉艺术形式,受到许多用户的喜爱。极简壁纸以其简洁、清新的风格,成为了许多人桌面和手机屏幕的首选。然而,手动下载这些壁纸不仅耗时,而且效率低下。因此,使用自动化工具进行壁纸的批量下载显得尤为重要。
DrissionPage 是一个强大的 Python 库,专门用于网页自动化和数据抓取。它结合了 Selenium 和 Requests 的优点,能够高效地处理网页元素和网络请求。在这个实战项目中,我们将利用 DrissionPage 来爬取一个提供极简壁纸的网站,通过编写脚本自动下载多张壁纸,节省时间和精力。
本项目的目标是实现一个简单的爬虫,能够访问指定的壁纸网站,提取壁纸的下载链接,并将这些壁纸保存到本地。通过这个过程,用户不仅可以获得自己喜欢的壁纸,还能学习到如何使用 Python 进行网页数据抓取的基本技巧。这种自动化的方式,不仅提高了效率,也为用户提供了更好的使用体验。
直接上代码:
# -*- encoding:utf-8 -*-
from DrissionPage import ChromiumPage
import os
import requests
from TimePinner import Pinner # 导入计时工具
pinner = Pinner() # 创建计时器对象
pinner.pin() # 标记开始记录
# 创建页面对象
page = ChromiumPage()
# 创建保存图片的目录
save_dir = './imgs'
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 访问目标网页
page.get('https://bz.zzzmh.cn/index')
# 爬取2页,给作者省点流量
for _ in range(2):
# 遍历一页中所有壁纸图片
for button in page.s_eles('.down-span'):
# 获取封面图片对象
a = button('t:a')
img_url = a.attr('href')
print(img_url) # 打印图片链接
# 保存图片
response = requests.get(img_url, stream=True)
img_name = img_url.split('/')[-1].split('.')[0] + '.jpg'
img_path = os.path.join(save_dir, img_name)
with open(img_path, 'wb') as f:
f.write(response.content)
print(f"图片已保存: {img_path}")
# 点击下一页
next_button = page('下一页')
if next_button:
next_button.click()
page.wait.load_start() # 等待页面加载
else:
break
pinner.pin('用时') # 记录并打印时间
点个关注+收藏啦~~