《明日方舟》Python版公开招募工具
工具介绍
根据输入的标签,快速找出能够招募4星,5星干员的标签组合,比如刷出了 重装 | 男 | 支援 |术师 | 先锋 五个标签,输入效果如下:

注意:不支持高级干员和资深高级干员标签
使用环境
- 安装python3
- 安装模块:requests、BeautifulSoup4
代码
import requests, sys, bs4, itertools
all_tags = set()
def parseData(data):
worker_infos = []
bsObj = bs4.BeautifulSoup(data, "html.parser")
details = bsObj.findAll("div",{"class": "contentDetail"})
for detail in details:
if u"公开招募" not in detail.attrs["data-param1"]:
continue
name = detail.find("a").attrs["title"].strip()
profes = detail.attrs["data-param1"].split(",")[0].strip()
sex = detail.attrs["data-param1"].split(",")[1].strip()
star = detail.attrs["data-param2"].strip()
tags = set()
for tag in detail.findAll("span", {"class": "tagText"}):
tags.add(tag.getText().strip())
all_tags.add(tag.getText().strip())
tags.add(profes)
tags.add(sex)
all_tags.add(profes)
all_tags.add(sex)
info = [tags, star, "%s(%s星)" % (name, star)]
worker_infos.append(info)
return worker_infos
def printTip():
tip = "\n可选标签:\n"
count = 0
for tag in all_tags:
tip = tip + tag + " | "
count += 1
if count % 9 == 0:
tip += "\n"
tip += "\n"
print(tip)
def checkTags(tags):
for tag in tags:
if tag not in all_tags:
print("\n" + tag + " 为无效标签")
def getCombs(tags):
combs = []
for i in range(len(tags)):
for iter in itertools.combinations(tags, i + 1):
combs.append(set(iter))
return combs
def getWorkers(tags, worker_infos):
ret = []
combs = getCombs(tags)
for comb in combs:
workers = []
over4 = True
for worker in worker_infos:
if comb <= worker[0]:
if int(worker[1]) == 4 or int(worker[1]) == 5:
workers.append(worker)
elif int(worker[1]) == 3:
over4 = False
if over4 == True and len(workers) > 0:
ret.append([comb, workers])
return ret
def printWorkers(workers):
for worker in workers:
tip = "\n| "
for tag in worker[0]:
tip = tip + tag + " | "
tip += "可以招募以下干员:\n"
for info in worker[1]:
tip = tip + info[2] + "\n"
print(tip)
url = "http://wiki.joyme.com/arknights/公开招募工具"
res = requests.get(url)
if res.status_code == requests.codes.ok:
infos = parseData(res.text)
printTip()
while True:
input_tags = input("请输入标签,使用空格隔开:\n").split()
checkTags(input_tags)
workers = getWorkers(input_tags, infos)
if len(workers) > 0:
printWorkers(workers)
else:
print("不能招聘高星干员")
print("--------------------------------------\n")
else:
print("获取数据失败")
数据来源
《明日方舟》Python版公开招募工具的更多相关文章
- 汉语拼音转换工具(Python 版)
汉语拼音转换工具(Python 版) http://pypinyin.readthedocs.org/en/latest/
- python入门科普IDE工具和编译环境
应友人之邀,今天来讲述python的一些入门内容.本次讲解的并不是语法或者某个模块. python下载安装 大多数 Linux 发行版在默认安装的情况 ...
- pyDes 实现 Python 版的 DES 对称加密/解密--转
https://my.oschina.net/leejun2005/blog/586451 手头有个 Java 版的 DES 加密/解密程序,最近想着将其 Python 重构下,方便后续脚本解析,捣鼓 ...
- 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝
移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌) 说到APP自动化测试,Appium可是说是非常流 ...
- Python的包管理工具
Python的包管理工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么使用包管理 Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了. 但是为了 ...
- 北京大学公开课《数据结构与算法Python版》
之前我分享过一个数据结构与算法的课程,很多小伙伴私信我问有没有Python版. 看了一些公开课后,今天特向大家推荐北京大学的这门课程:<数据结构与算法Python版>. 课程概述 很多同学 ...
- 尖端之作看逐浪-Zoomla!逐浪CMS python版发布
免费下载:https://www.z01.com/down/3723.shtml Python是跻身于当代IT世界最流行和代码最高效的编程语言之一. 带着对技术的卓越追求.对客户的承诺.对品质的极致追 ...
- 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL
周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...
- 数据结构:顺序表(python版)
顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...
随机推荐
- 【Beta】Scrum meeting 5
目录 写在前面 进度情况 任务进度表 Beta-1阶段燃尽图 遇到的困难 照片 commit记录截图 小程序前端仓库 后端代码仓库 技术博客 写在前面 例会时间:5.9 22:30-23:30 例会地 ...
- linux驱动由浅入深系列:高通sensor架构实例分析之二(驱动代码结构)【转】
本文转载自:https://blog.csdn.net/radianceblau/article/details/73498303 本系列导航: linux驱动由浅入深系列:高通sensor架构实例分 ...
- NIO网络编程
1.创建服务端代码 public class NioServer { private static Map<String, SocketChannel> clientMap = new H ...
- odoo开发笔记 -- 提高访问安全性的一种方式
场景描述: 最近在做项目的过程中,需要需要将odoo应用集成到其他系统中, 在对方的系统中点击我们的应用,打开对应系统,但是界面不做跳转,在当前页面打开,并且浏览器地址栏只显示IP+应用名,不让显示o ...
- 支付宝小程序开发——如何获取支付宝小程序页面的https链接
前边介绍过通过配置支付宝Scheme协议alipays://来实现h5到小程序的跳转,其实还可以获取小程序页面的https格式链接,虽然支付宝官方并没有直接提供方案,但是通过小程序后台的“码管理”给页 ...
- 【转】Python查找某文件夹下的所有excel文件
# -*- coding: utf-8 -*- # author:baoshan import os dirname = r'D:\0.shenma\01.聊城资料\01.数据资料\02.聊城年鉴数据 ...
- 【转载】 tf.ConfigProto和tf.GPUOptions用法总结
原文地址: https://blog.csdn.net/C_chuxin/article/details/84990176 -------------------------------------- ...
- server computer (实验室移动服务器环境)
star@xmatrix:~$ lshwWARNING: you should run this program as super-user.xmatrix ...
- aliyun手记
阿里云里面购买的带宽是指外网带宽,内网默认是千兆带宽,做过I/O优化的则是万兆带宽. 修改密码实在更多(三个点)的那里进行修改的:修改密码(windows是administrator以及Linux是r ...
- shell基础知识5-函数
函数的定义 function fname(){ } 或者 function_name(){ } 对于简单的函数,甚至可以是这样做 fname() { statement; } 函数调用 直接写函数名即 ...