首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >DrissionPage 实战:极简壁纸爬取之旅

DrissionPage 实战:极简壁纸爬取之旅

作者头像
LucianaiB
发布2025-05-28 18:01:22
发布2025-05-28 18:01:22
6590
举报

DrissionPage 实战:极简壁纸爬取之旅

引言

在这个信息爆炸的时代,我们每天都被海量的图片和信息所包围,但有时候,我们只想要一些简单而纯粹的美。极简壁纸以其简洁、干净的风格,成为了许多人桌面背景的首选。今天,我将带领大家使用DrissionPage这一强大的工具,来实现自动化爬取极简壁纸网站的图片。

DrissionPage 简介

DrissionPage 是一个基于Python的网页自动化工具,它能够帮助我们模拟浏览器操作,实现网页的自动化访问、元素定位、点击等操作。它支持Chrome浏览器,可以与Selenium等工具相媲美,但DrissionPage更加轻量级,启动速度更快。

环境准备

在开始之前,请确保你已经安装了以下工具和库:

  • Python 3.x
  • DrissionPage
  • requests
  • os

如果尚未安装DrissionPage和requests,可以通过pip进行安装:

代码语言:javascript
复制
pip install DrissionPage requests

代码实现

1. 导入必要的库
代码语言:javascript
复制
# -*- encoding:utf-8 -*-
from DrissionPage import ChromiumPage
import os
import requests
from TimePinner import Pinner  # 导入计时工具
2. 初始化计时器和页面对象
代码语言:javascript
复制
pinner = Pinner()  # 创建计时器对象
pinner.pin()  # 标记开始记录

page = ChromiumPage()  # 创建页面对象
3. 创建保存图片的目录
代码语言:javascript
复制
save_dir = './imgs'
if not os.path.exists(save_dir):
    os.makedirs(save_dir)
4. 访问目标网页并开始爬取
代码语言:javascript
复制
page.get('https://bz.zzzmh.cn/index')  # 访问目标网页
5. 遍历并下载图片

我们将遍历两页的图片,以节省目标网站的流量。

代码语言:javascript
复制
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
6. 记录并打印爬取用时
代码语言:javascript
复制
pinner.pin('用时')  # 记录并打印时间

结语

通过以上步骤,我们成功地实现了使用DrissionPage自动化爬取极简壁纸网站的功能。这不仅节省了我们手动下载图片的时间,也让我们对网页自动化有了更深的理解。希望这篇文章能够帮助到对网页自动化感兴趣的你,让我们一起探索更多的可能性!

代码结果

附录

  • DrissionPage文档: DrissionPage官方文档
  • 代码示例: [GitHub上的示例代码](python/DrissionPage实战之爬取极简壁纸.py at main · OnePieceLwc/python (github.com))

完整代码:

代码语言:javascript
复制
# -*- 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('用时')  # 记录并打印时间
​
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-11-08,如有侵权请联系 cloudcommunity@tencent.com 删除
目录
  • DrissionPage 实战:极简壁纸爬取之旅
    • 引言
    • DrissionPage 简介
    • 环境准备
    • 代码实现
      • 1. 导入必要的库
      • 2. 初始化计时器和页面对象
      • 3. 创建保存图片的目录
      • 4. 访问目标网页并开始爬取
      • 5. 遍历并下载图片
      • 6. 记录并打印爬取用时
    • 结语
    • 代码结果
    • 附录
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档