xpath–简单的爬虫实例–提取阴阳师原画壁纸

文章目录

  • 一、前言
  • 二、需要用到的库
  • 三、实现过程
    • 1、分析网页
    • 2、完整代码实现
  • 四、合成视频

一、前言

很多人都玩过阴阳师吧,别的不谈,阴阳师的原画制作的那是相当地精细,闲暇之余,用几行简单的代码爬取下来,岂不美哉?

二、需要用到的库

import requests
from lxml import etree
from fake_useragent import UserAgent
import os

没用安装库的小伙伴,可以看一下我之前写的这篇文章,里面有很多国内源的链接,方便你的下载。

传送门

三、实现过程

1、分析网页

首先打开官网,官网传送门,点击“视听中心”里面的“原画壁纸

进入到原画壁纸页面后,选择一个壁纸,进行检查。


我发现,对于不同的分辨率,有不同的链接对应,而我检查的这张图有六个分辨率,是不是所有的图片都是这样呢?
后来我发现,并不是!

如上所示,有个图甚至只有四个分辨率,并且,每张图的分辨率的位置对应还不一致,那该怎么提取原画链接呢?

A:利用xpath,根据文本内容提取节点

a = lists[i].xpath('./div/div/a[contains(text(), "1920x1080")]')[0]

这样就能提取到分辨率为“1920x1080”的a节点了。

Q:lists[i]是什么?
A:看了完整代码就知道了。

2、完整代码实现

import requests
from lxml import etree
from fake_useragent import UserAgent
import ospath = 'D:/阴阳师'
if not os.path.exists(path):os.mkdir(path)# 随机产生请求头
ua = UserAgent(verify_ssl=False, path='fake_useragent.json')url = 'https://yys.163.com/media/picture.html'  # 原画壁纸的页面链接
response = requests.get(url=url).text
html = etree.HTML(response)
lists = html.xpath('/html/body/div[2]/div[3]/div[1]/div[3]/div[2]/div')
num = 1
for i in range(len(lists)):a = lists[i].xpath('./div/div/a[contains(text(), "1920x1080")]')[0]  # 根据文本内容锁定节点aimage_url = a.xpath('./@href')[0]  # 获取原画壁纸链接image_data = requests.get(url=image_url).contentimage_name = '{}.jpg'.format(num)  # 给每张图片命名save_path = path + '/' + image_name  # 图片的保存地址with open(save_path, 'wb') as f:f.write(image_data)print(image_name, '=======================>下载成功!!!')f.close()num += 1

运行结果如下:

四、合成视频

通过合成视频,可以慢慢欣赏爬取下来的原画,舒服极了。

代码如下:

import cv2
import os# 输出视频的保存路径
video_dir = 'D:/yinyangshi/result.mp4'
# 帧率
fps = 0.2
# 图片尺寸
img_size = (1920, 1080)fourcc = cv2.VideoWriter_fourcc('M', 'P', '4', 'V')  # opencv3.0 mp4会有警告但可以播放
videoWriter = cv2.VideoWriter(video_dir, fourcc, fps, img_size)
img_files = os.listdir('D:/yinyangshi/')for i in range(1, 397):img_path = 'D:/yinyangshi/tupian/' + '{}.jpg'.format(i)frame = cv2.imread(img_path)frame = cv2.resize(frame, img_size)   # 生成视频   图片尺寸和设定尺寸相同videoWriter.write(frame)      # 写进视频里print(f'======== 按照视频顺序第{i}张图片合进视频 ========')videoWriter.release()   # 释放资源

注意:合成视频时,图片的保存路径和视频的生成路径不能包含中文!!!

哔哩哔哩链接:https://www.bilibili.com/video/BV1Kp4y1W7yB

阴阳师原画合集

Python爬虫,超简单地实现一键提取阴阳师原画相关推荐

  1. python阴阳师,Python简单地实现一键提取阴阳师原画方法

    Eng少儿编程网-https://www.pxcodes.com免费学习推荐:Eng少儿编程网-https://www.pxcodes.com xpath–简单的爬虫实例–提取阴阳师原画壁纸Eng少儿 ...

  2. Python爬虫实战:炉石传说卡牌、原画数据抓取

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 原画爬取 先看一下炉石传说的原画: 炉石传说原画链接: http://news. ...

  3. python做视频特效_python实现超简单的视频对象提取功能

    视频对象提取 与其说是视频对象提取,不如说是视频颜色提取,因为其本质还是使用了OpenCV的HSV颜色物体检测.下面话不多说了,来一起看看详细的介绍吧. HSV介绍 HSV分别代表,色调(H:hue) ...

  4. python简单爬虫代码-python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息...

    原标题:python爬虫超简单攻略,带你写入门级的爬虫,抓取上万条信息 最近经常有人问我,明明看着教程写个爬虫很简单,但是自己上手的时候就麻爪了...那么今天就给刚开始学习爬虫的同学,分享一下怎么一步 ...

  5. Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤

    Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 文章目录 Python爬虫之简单爬虫之爬取英雄联盟官网的英雄的皮肤 背景:LOL这款游戏有着大量的玩家,这个游戏里面人们津津乐道的皮肤,每一款 ...

  6. 超简单,Python爬取阴阳师原画壁纸

    Python爬取阴阳师官网原画壁纸,附完整代码 爬阴阳师官网插画 网页分析 教程开始 1 获取网页源代码 使用第三方库requests来获取网页 2 获取目标数据 使用BeautifulSoup解析网 ...

  7. python爬虫简单实例-这个Python爬虫的简单入门及实用的实例,你会吗?

    利用爬虫可以进行数据挖掘,比如可以爬取别人的网页,收集有用的数据进行整合和划分,简单的就是用程序爬取网页上的所有图片并保存在自己新建的文件夹内,还有可以爬社交网站的自拍图,将几十万张的图片合在一起,就 ...

  8. 写博客没高质量配图?python爬虫教你绕过限制一键搜索下载图虫创意图片!

    目录 前言 分析 理想状态 爬虫实现 其他注意 效果与总结 @(文章目录) 前言 在我们写文章(博客.公众号.自媒体)的时候,常常觉得自己的文章有些老土,这很大程度是因为配图没有选好. 笔者也是遇到相 ...

  9. excel调用python编程-超简单:用Python让Excel飞起

    本书对于编程知识零基础的办公人士特别友好,其摒弃了晦涩的理论讲解,引入了实用的办公场景,为办公人士开辟了一条学习办公自动化的新路.本书精选典型办公案例以及通俗易懂的讲解,有助于办公人士掌握Python ...

  10. [转载] excel调用python编程-超简单:用Python让Excel飞起

    参考链接: Python | 使用XlsxWriter模块在Excel工作表中绘制饼图 本书对于编程知识零基础的办公人士特别友好,其摒弃了晦涩的理论讲解,引入了实用的办公场景,为办公人士开辟了一条学习 ...

最新文章

  1. 深度学习在不同领域的应用,我去,这也行!?
  2. “重”磅!人造物质量首超全球生物量
  3. JDK1.8的安装与环境变量设置演示,java、jre安装及配置
  4. explain查看mysql语句的执行效率
  5. C/C++中ASCII与Unicode字符串相互转换
  6. MySQL社区版的下载和安装
  7. 《DSP using MATLAB》Problem 6.20
  8. 神经网络的基本工作原理
  9. 面试官:你给我画一下秒杀系统的架构图!
  10. 实用的pythondjango项目_推荐10个django开发过程中比较好用的第三方包
  11. 使用Java实现邮件的发送
  12. 常见的文件格式有哪些
  13. 《BJBR虚拟仿真解决方案(描述精选)》(Yanlz+SteamVR+5G+AI+VR+AR+MR+HR+BR+CR+DR+ER+FR+GR+人工智能+人机交互+立钻哥哥+==)
  14. 浏览器的邮件html编辑器无效,eWebEditor 辑器按钮失效 IE8下eWebEditor编辑器无法使用的解决方法...
  15. java 象棋 论文_java象棋论文
  16. 一个简单的多线程实现
  17. 【校招VIP】产品思维考察之如何做市场分析
  18. 从零打造一台计算机有多难?复旦本科生大神花费了一年心血!
  19. CentOS下安裝Nvidia docker 2.0:[Errno 256] No more mirrors to try錯誤及解決方式
  20. Python 字典:当索引不好用时

热门文章

  1. 计算机毕业设计jsp酒店管理系统
  2. CentOS安装最新版本curl
  3. Ubuntu 系统安装显卡驱动教程
  4. oracle应收模块报表,OracleERPEBS应收模块AR概要培训ppt课件
  5. [网络安全自学篇] 二十五.Web安全学习路线及木马、病毒和防御初探
  6. 智能机器人机器人心得_你是机器人吗
  7. TracePro小白学习操作
  8. Python 实现PID控制一阶惯性系统
  9. dos如何运行java_怎么用DOS命令运行java程序
  10. 计算机病毒属于源程序吗,计算机病毒是否是源程序吗