This repository has been archived by the owner on Aug 15, 2023. It is now read-only.
Replies: 4 comments 12 replies
-
虽然这么说有点那啥……但是我感觉懒得话可以无脑接原作者的,因为他在……放寒假 |
Beta Was this translation helpful? Give feedback.
2 replies
-
99cf542 |
Beta Was this translation helpful? Give feedback.
8 replies
-
from genericpath import exists
import requests
from lxml import etree
import re
import json
import os
def 获取元素战技(html,character):
if character == 'ayaka' or character == 'mona':
xpath = '//*[@id="live_data"]/table[4]/tr[1]/td[2]/a/text()'
else:
xpath = '//*[@id="live_data"]/table[4]/tr[1]/td[2]/a/text()'
result = html.xpath(xpath)[0]
return result
def 获取元素爆发(html,character):
if character == 'ayaka' or character == 'mona':
xpath = '//*[@id="live_data"]/table[6]/tr[1]/td[2]/a/text()'
else:
xpath = '//*[@id="live_data"]/table[5]/tr[1]/td[2]/a/text()'
result = html.xpath(xpath)[0]
return result
def 获取命之座(html,元素战技,元素爆发,character):
content_result = []
for i in [2,4,6,8,10,12]:
if character == 'ayaka' or character == 'mona':
xpath = f'//*[@id="live_data"]/table[9]/tr[{i}]/td/div'
else:
xpath = f'//*[@id="live_data"]/table[8]/tr[{i}]/td/div'
result = html.xpath(xpath)[0]
result_str = etree.tostring(result, encoding='utf8', method='html').decode()
reg = re.compile('<[^>]*>')
content = reg.sub('',result_str).replace('\n','').replace(' ','').replace('•','·').replace(元素战技,'元素战技').replace(元素爆发,'元素爆发')
content_result.append(content)
return (content_result)
def 处理json(角色,content_json):
with open(f'docs/{角色}.json',encoding='utf-8') as f:
data = json.load(f)
data['constellations'] = content_json
with open(f'docs/{角色}.json','w',encoding='utf-8') as f:
json.dump(data, f ,indent=2,ensure_ascii=False)
def 获取数据(character):
if os.path.exists(f'html/{character}.html'):
html = etree.parse(f'html/{character}.html', etree.HTMLParser())
else:
headers={
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.99 Safari/537.36',
}
url = f'https://genshin.honeyhunterworld.com/db/char/{character}/?lang=CHS'
r = requests.get(url=url,headers=headers,timeout=5).text
fp = open(f'html/{character}.html','w',encoding='utf-8')
fp.write(r)
fp.close
html = etree.parse(f'html/{character}.html', etree.HTMLParser())
return html
if __name__ == "__main__":
character ={'qiqi':'七七',
'lisa':'丽莎',
'sara':'九条裟罗',
'yunjin':'云堇',
'gorou':'五郎',
'eula':'优菈',
'ningguang':'凝光',
'kaeya':'凯亚',
'keqing':'刻晴',
'beidou':'北斗',
'klee':'可莉',
'aloy':'埃洛伊',
'amber':'安柏',
'yoimiya':'宵宫',
'thoma':'托马',
'sayu':'早柚',
'kazuha':'枫原万叶',
'venti':'温迪',
'feiyan':'烟绯',
'kokomi':'珊瑚宫心海',
'bennett':'班尼特',
'jean':'琴',
'ganyu':'甘雨',
'shenhe':'申鹤',
'sucrose':'砂糖',
'rosaria':'罗莎莉亚',
'hutao':'胡桃',
'barbara':'芭芭拉',
'itto':'荒泷一斗',
'fischl':'菲谢尔',
'xingqiu':'行秋',
'noelle':'诺艾尔',
'xinyan':'辛焱',
'tartaglia':'达达利亚',
'diluc':'迪卢克',
'diona':'迪奥娜',
'chongyun':'重云',
'zhongli':'钟离',
'albedo':'阿贝多',
'razor':'雷泽',
'shougun':'雷电将军',
'xiangling':'香菱',
'xiao':'魈',
'ayaka':'神里绫华',
'mona':'莫娜'}
for key in character:
print(f'{character[key]}正在处理……')
html = 获取数据(key)
元素战技 = 获取元素战技(html,key)
元素爆发 = 获取元素爆发(html,key)
命之座 = 获取命之座(html,元素战技,元素爆发,key)
处理json(character[key],命之座)
print(f'{character[key]}处理结束……\n') |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
@Xm798
测试结束了,屑狐狸的仰卧起坐应该也结束了
另外,之前那个图像规范有些写的不对的地方,其实卡池图像和角色头像(证件照)的对齐标准是眼睛的位置。你把神里和刻晴的证件照放在一起比较,开两个图层互相切换,会发现她们两个人只是换了个发型,眼睛的位置和脸型都没变化。卡池的竖条图片也是差不多,大致对齐的是眼睛的位置
内鬼网搞素材喜欢裁切掉透明像素,所以八重先只扒下来 gacha splash,因为 gacha splash 是自由的,我只要求 1:1 的比例就行。你可以用透明像素把它补充到 1:1 的尺寸,或者再把周围的透明像素裁切掉留成 1:1 的尺寸,这个都可以。
卡池和证件照先不加,证件照到时候等着抓米游社的图或者 genshin fandom 的 256×256 大小的标准图,卡池图我还要再改改前端的显示效果
Beta Was this translation helpful? Give feedback.
All reactions