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('用时')  # 记录并打印时间
​
目录
相关文章
|
SQL 人工智能 编解码
『GitHub项目圈选07』推荐5款超实用的开源项目
『GitHub项目圈选07』推荐5款超实用的开源项目
691 0
|
NoSQL 安全 Linux
【Redis入门】在阿里云上快速安装 Redis
如果你最近打算学习 redis 并且买了阿里云的 Linux 服务器,那么借助阿里云服务器和宝塔Linux面板,只需要简单几步就可以安装好 redis。
1733 0
【Redis入门】在阿里云上快速安装 Redis
|
数据采集 Web App开发 JavaScript
爬虫技术升级:如何结合DrissionPage和Auth代理插件实现数据采集
本文介绍了在Python中使用DrissionPage库和Auth代理Chrome插件抓取163新闻网站数据的方法。针对许多爬虫框架不支持代理认证的问题,文章提出了通过代码生成包含认证信息的Chrome插件来配置代理。示例代码展示了如何创建插件并利用DrissionPage进行网页自动化,成功访问需要代理的网站并打印页面标题。该方法有效解决了代理认证难题,提高了爬虫的效率和安全性,适用于各种需要代理认证的网页数据采集。
2003 0
爬虫技术升级:如何结合DrissionPage和Auth代理插件实现数据采集
|
7月前
CLion中文乱码的解决方案
CLion中文乱码的解决方案
383 1
|
7月前
|
人工智能 运维 安全
资产类型转移:面向意图编程与AI时代的组织重构
本文提出“资产类型主导组织形态”核心观点:互联网公司困局源于以“代码”为核心资产,而AI时代应转向“意图+约束”新资产。面向意图编程(IOP)将业务目标显性化为意图、技术规范可执行化为约束,推动组织从职能分层流水线,升级为意图定义者、约束设计师等角色协同的市场式协作,实现知识资产化、复用自动化、质量内建化。(239字)
|
JSON 算法 API
淘宝商品评论API接口核心解析,json数据返回
淘宝商品评论API是淘宝开放平台提供的数据服务接口,允许开发者通过编程方式获取指定商品的用户评价数据,包括文字、图片、视频评论及评分等。其核心价值在于:
|
12月前
|
缓存 应用服务中间件 PHP
WordPress提速指南:Memcached+Super Static Cache+CDN缓存网站内容
本文分享三大网站提速方案:启用Memcached减少数据库压力,使用Super Static Cache生成静态页面,结合CDN实现全球加速,全面提升WordPress加载速度与用户体验。
416 1
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
1818 4

热门文章

最新文章