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

简介: 本文介绍了如何使用DrissionPage工具自动化爬取极简风格的壁纸图片。通过简单的环境搭建和代码实现,展示了从访问目标网站、定位图片元素到下载保存的全过程。文中还提供了详细的代码示例,帮助读者快速上手。

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

引言

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

DrissionPage 简介

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

环境准备

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

  • Python 3.x
  • DrissionPage
  • requests
  • os

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

pip install DrissionPage requests

代码实现

1. 导入必要的库

# -*- encoding:utf-8 -*-
from DrissionPage import ChromiumPage
import os
import requests
from TimePinner import Pinner  # 导入计时工具

2. 初始化计时器和页面对象

pinner = Pinner()  # 创建计时器对象
pinner.pin()  # 标记开始记录

page = ChromiumPage()  # 创建页面对象

3. 创建保存图片的目录

save_dir = './imgs'
if not os.path.exists(save_dir):
    os.makedirs(save_dir)

4. 访问目标网页并开始爬取

page.get('https://bz.zzzmh.cn/index')  # 访问目标网页

5. 遍历并下载图片

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

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. 记录并打印爬取用时

pinner.pin('用时')  # 记录并打印时间

结语

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

代码结果

附录


完整代码:


# -*- 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('用时')  # 记录并打印时间
目录
相关文章
|
7月前
|
数据采集 Web App开发 JSON
浏览器插件:WebScraper基本用法和抓取页面内容(不会编程也能爬取数据)
本文以百度为实战案例演示使用WebScraper插件抓取页面内容保存到文件中。以及WebScraper用法【2月更文挑战第1天】
519 2
浏览器插件:WebScraper基本用法和抓取页面内容(不会编程也能爬取数据)
|
缓存 Windows
游戏编程之十一 图像页CPICPAGE介绍
游戏编程之十一 图像页CPICPAGE介绍
76 0
|
7月前
|
Web App开发 IDE 测试技术
实战练习:用airtest-selenium脚本爬取百度热搜标题
实战练习:用airtest-selenium脚本爬取百度热搜标题
159 0
|
druid Java 关系型数据库
JSP第十八课让你体验不一样的代码世界《笔记内容三》(一)
JSP第十八课让你体验不一样的代码世界《笔记内容三》(一)
72 0
|
XML JSON JavaScript
Python实战:获取bing必应壁纸首页的每日一图(仅做学习用)
Python实战:获取bing必应壁纸首页的每日一图(仅做学习用)
298 0
Python实战:获取bing必应壁纸首页的每日一图(仅做学习用)
|
数据采集 IDE 开发工具
python爬虫入门教程:爬取网页图片
python爬虫入门教程:爬取网页图片
342 0
|
中间件
Axure实战09:创建一个NavigationPage导航页网站
Axure实战09:创建一个NavigationPage导航页网站
384 0
Axure实战09:创建一个NavigationPage导航页网站

相关课程

更多

相关实验场景

更多