当前位置: 首页 > news >正文

16行代码采集原神官网角色全图+全语音

嗨害大家好鸭!我是小熊猫~

本来是不玩原神的,

但是实在是经不住诱惑鸭~

毕竟谁能拒绝可以爬树、炸鱼、壶里造房子、抓小动物、躲猫猫的对战游戏捏~

在这里插入图片描述

准备工具

在这里插入图片描述

源码资料电子书:点击此处跳转文末名片获取


准备模块

import requests
import re
import execjs

请求链接

在这里插入图片描述
在这里插入图片描述

本次目标

所有角色的:

  • 基础介绍
  • 中日语音
  • 图片

分析数据来源

1. 右键点击检查(开发者工具)

在这里插入图片描述

2.刷新网页,找准对应数据

在这里插入图片描述

在这里插入图片描述

开始代码

url = 'https:///main/character/liyue?char=1'
html_data = requests.get(url).text
print(html_data)

源码资料电子书:点击此处跳转文末名片获取

筛选数据
在这里插入图片描述

随便搜索网站内包含内容:“南十字”

在这里插入图片描述

使用正则表达式匹配数据内容

在这里插入图片描述

js_text = re.findall('window.__NUXT__=(.*);', html_data)[0]

执行结果

html_data = requests.get(url).text
js_text = re.findall('window.__NUXT__=(.*);', html_data)[0]
result = execjs.eval(js_text)

此时会出现编码问题

在这里插入图片描述

加指定编码

import subprocess
from functools import partial
subprocess.Popen = partial(subprocess.Popen, encoding="utf-8")

再次运行,无报错

在这里插入图片描述

使用pprint查看数据结构

pprint.pprint(result)

在这里插入图片描述

返回网页查看我们需要的内容

在这里插入图片描述

在这里插入图片描述

打印所需数据

charList = result['data'][0]['charList']
for char in charList:cover1 = char['cover1']title = char['title']intro = char['intro']audio_list = char['cv'][0]['audio']print(title, intro, cover1, audio_list)

部分效果展示

在这里插入图片描述
在这里插入图片描述

全部代码

import requests
import re
import execjsurl = 'https://python学习交流:660193417/main/character/liyue?char=1'
html_data = requests.get(url).text
js_text = re.findall('window.__NUXT__=(.*);', html_data)[0]
result = execjs.eval(js_text)
# pprint.pprint(result)
charList = result['data'][0]['charList']
for char in charList:cover1 = char['cover1']title = char['title']intro = char['intro']audio_list = char['cv'][0]['audio']print(title, intro, cover1, audio_list)
👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇
http://www.lryc.cn/news/17220.html

相关文章:

  • Unity(二)--通过简单例子了解UGUI几个常用对象操作(Text,Image,Button)
  • 手写一个文件上传demo
  • 通过 Apifox Echo 了解 Content-Length
  • ESP32设备驱动-CPU频率设置
  • 超声波风速风向传感器的技术参数
  • 【vue2每日小知识】实现store中modules模块的封装与自动导入
  • 【Leetcode 剑指Offer】第3天 字符串(简单)
  • 【双指针问题】LeetCode344、345、 844、283问题详解及代码实现
  • Linux基础命令-netstat显示网络状态
  • 液氮恒温器(电学)T9015的技术规格
  • 字节跳动大规模实践埋点自动化测试框架设计
  • 自动化测试优势和劣势
  • 数据结构---顺序表
  • springboot基础
  • 华为OD机试真题Python实现【 时间格式化】真题+解题思路+代码(20222023)
  • android kotlin 协程(五) suspend与continuation
  • JavaScript事件循环
  • 华为OD机试真题Python实现【最少停车数】真题+解题思路+代码(20222023)
  • Python每日一练(20230223)
  • Flask----------第一个flask项目,debug、host、port的配置
  • 容器技术概述
  • 「SAP」ABAP模块学习需要了解什么?快收下这份ABAP技术栈指南【附技能树】
  • 【python 基础篇 九】python的常用数据类型操作-------时间日历
  • 华为OD机试真题Python实现【相同字符连续出现的最大次数】真题+解题思路+代码(20222023)
  • 【Unity3D】空间和变换
  • 脑洞|ChatGPT加持下,ChatOps将如何革新团队协作与运维管理?
  • 华为OD机试真题Python实现【找数字】真题+解题思路+代码(20222023)
  • 【Database-01】达梦数据库Docker版下载安装
  • Allegro如何打开格点显示效果操作指导
  • 电子技术——反馈放大器的分析方法总结