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('用时')  # 记录并打印时间
目录
相关文章
|
2月前
|
弹性计算 人工智能 对象存储
阿里云服务器最新优惠价格表:含 ECS、轻量、GPU 配置及收费标准
阿里云服务器多少钱?阿里云服务器优惠价格表:涵盖轻量应用服务器、ECS 云服务器、GPU 服务器等主流产品,低至 38 元1年、99元和199元收费,部分配置升级至 200M 带宽且不限流量,无论是个人开发者、中小企业还是大型企业,都能找到适配需求的高性价比方案。以下是整理的阿里云最新优惠价格及配置详情::轻量应用服务器200M峰值带宽68元1年(秒杀38元),ECS云服务器2核2G3M带宽99元一年、2核4G、5M带宽、80G系统盘优惠价格199元一年,4核16G服务器10M带宽89元1个月,8核32G服务器10M固定带宽160元一个月,阿里云香港轻量服务器200M带宽25元个月起。方便大
|
JavaScript 前端开发 开发者
探索 DrissionPage: 强大的Python网页自动化工具
DrissionPage 是一个基于 Python 的网页自动化工具,结合了浏览器自动化的便利性和 requests 库的高效率。它提供三种页面对象:ChromiumPage、WebPage 和 SessionPage,分别适用于不同的使用场景,帮助开发者高效完成网页自动化任务。
1350 4
|
5月前
|
并行计算 C++ Windows
|
数据采集 搜索推荐 API
小红书笔记详情 API 接口:获取、应用与收益全解析
小红书(RED)是国内领先的生活方式分享平台,汇聚大量用户生成内容(UGC),尤以“种草”笔记闻名。小红书笔记详情API接口为开发者提供了获取笔记详细信息的强大工具,包括标题、内容、图片、点赞数等。通过注册开放平台账号、申请API权限并调用接口,开发者可构建内容分析工具、笔记推荐系统、数据爬虫等应用,提升用户体验和运营效率,创造新的商业模式。本文将详细介绍该API的获取、应用及潜在收益,并附上代码示例。
1831 13
|
网络协议 API 开发者
Python中的会话管理:requests.Session深度解析
Python中的会话管理:requests.Session深度解析
|
机器学习/深度学习
YOLOv11改进策略【Conv和Transformer】| CVPR-2024 Single-Head Self-Attention 单头自注意力
YOLOv11改进策略【Conv和Transformer】| CVPR-2024 Single-Head Self-Attention 单头自注意力
372 7
YOLOv11改进策略【Conv和Transformer】| CVPR-2024 Single-Head Self-Attention 单头自注意力
|
11月前
|
供应链 API 开发者
1688商品列表API接口详解
1688是国内知名的批发采购平台,提供海量商品资源。开发者通过1688商品列表API可获取商品的名称、价格、销量等信息,支持构建电商数据分析工具、比价应用等。接口采用HTTP GET/POST请求,需提供关键词、页码、每页数量等必填参数,响应数据包含商品列表及总记录数。示例代码展示了如何使用Python进行请求和处理响应。供稿者:Taobaoapi2014。
|
数据采集 JavaScript 前端开发
如何判断一个网站是否采取了反爬虫措施
通过观察请求响应、分析请求频率限制和检测JavaScript动态加载来初步判断网站是否使用反爬虫措施。使用Python `requests` 发送请求并检查响应头和内容,寻找验证码、限制信息。尝试短时间内多次请求,看是否被限制。使用Selenium模拟浏览器行为,获取动态加载内容。注意,这些方法仅为初步判断,实际可能需更深入分析,并确保爬取行为合法合规。
|
数据采集 存储 监控
如何使用 Python 爬取京东商品数据
如何使用 Python 爬取京东商品数据
801 2
|
人工智能 自然语言处理 机器人
谷歌AI Gemin怎么使用?Gemini国内使用指南!(2024.8.19)
从自然语言处理(NLP)到对话生成,AI语言模型已经成为科技界的一个重要组成部分。在众多杰出的AI语言模型中,Gemini凭借其卓越的性能和广泛的应用而脱颖而出。作为谷歌旗下的多模态AI巨头,Gemini融合了最先进的语言处理技术,为用户提供了无与伦比的语言理解和生成能力。