啥是原神?女友说想要全角色语音+表情包,顺手用python把高清图也整下来了

206 篇文章 10 订阅
138 篇文章 8 订阅

人生苦短 我用python

啥是原神我也不是很清楚

只知道女朋友最近很喜欢

所以给她整了点表情包还有全角色图+语音包

不过分,一点都不过分

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


表情包部分:

1. 素材来自:

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

2. 准备模块

import re
from selenium import webdriver
import time
import requests

3. 调用浏览器驱动

driver = webdriver.Chrome()

4. 页面滚动

def drop_down():
    for x in range(1, 27, 3): 
        time.sleep(1)
        j = x / 27  # 1/9  3/9  5/9  9/9
        js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
        driver.execute_script(js)

5. 保存数据

lis = driver.find_elements_by_css_selector('.dgControl_list li .iuscp')
page = 1
for li in lis:
    try:
        img_url = li.find_element_by_css_selector('.mimg').get_attribute('src')
        title = li.find_element_by_css_selector('.b_dataList a').get_attribute('title')
        title = re.sub(r'[\/"<>*?|\n]', '', title)
        img_content = requests.get(url=img_url).content
        with open('img//' + title + str(page) +  '.jpg', mode='wb') as f:
            f.write(img_content)
        print(title, img_url)
        page +=1

这里特意留了一个小bug,诶嘿~

5. 效果

在这里插入图片描述


全角色语音+高清彩图部分

1.准备工具

在这里插入图片描述

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

在这里插入图片描述


2. 准备模块

import requests
import re
import execjs

3. 请求链接

在这里插入图片描述

在这里插入图片描述

4. 本次目标

所有角色的:

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

5. 分析数据来源

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

6. 开始代码

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]

7. 执行结果

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)

8. 部分效果展示

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

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

9. 全部代码

import requests
import re
import execjs

url = 'https://python学习交流:903971231/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)
👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值