DrissionPage实战之爬取极简壁纸

直接看效果:

背景:

在现代互联网中,壁纸作为一种视觉艺术形式,受到许多用户的喜爱。极简壁纸以其简洁、清新的风格,成为了许多人桌面和手机屏幕的首选。然而,手动下载这些壁纸不仅耗时,而且效率低下。因此,使用自动化工具进行壁纸的批量下载显得尤为重要。

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('用时')  # 记录并打印时间

点个关注+收藏啦~~

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
DrissionPage是一个Python库,用于爬取和解析动态加载内容的网页。它结合了JavaScript渲染技术,比如Puppeteer(一个Node.js库)或类似的工具,能够在服务器端模拟浏览器行为,从而获取那些依赖前端脚本加载的数据。 以下是使用DrissionPage爬取动态网页的基本步骤: 1. 安装DrissionPage:首先你需要安装DrissionPage,你可以通过pip安装: ``` pip install drissionpage ``` 2. 引入并初始化:在Python代码中,导入`drission.DrissionPage`类,并创建一个实例。 ```python from drission import DrissionPage browser = DrissionPage() ``` 3. 设置代理(如果需要):DrissionPage支持设置HTTP代理,以防被目标网站屏蔽。 ```python browser.set_proxy('http://your-proxy-url:port') ``` 4. 打开页面:指定你要抓取的网页URL。 ```python page = browser.open_url('https://www.example.com/dynamic-page') ``` 5. 延迟加载:动态加载的内容可能需要等待一段时间才会出现,这时你可以调用`wait_for_selector`或`execute_script`等方法来等待条件满足。 ```python page.wait_for_selector('.dynamic-element') # 等待某个元素加载 data = page.execute_script('return document.getElementById("data").innerHTML;') # 执行JS并获取数据 ``` 6. 数据提取:使用`get_element`、`evaluate`或XPath等方式,从页面上获取所需数据。 ```python result = page.get_element('#targetElement').text ``` 7. 结束会话:爬取完成后,记得关闭浏览器会话。 ```python browser.close() ``` 8. 处理数据:最后,处理爬取到的数据,存储或进一步分析。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LucianaiB

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值