工具介绍

根据输入的标签,快速找出能够招募4星,5星干员的标签组合,比如刷出了 重装 | 男 | 支援 |术师 | 先锋 五个标签,输入效果如下:

注意:不支持高级干员和资深高级干员标签

使用环境

  1. 安装python3
  2. 安装模块: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版公开招募工具的更多相关文章

  1. 汉语拼音转换工具(Python 版)

    汉语拼音转换工具(Python 版) http://pypinyin.readthedocs.org/en/latest/

  2. python入门科普IDE工具和编译环境

            应友人之邀,今天来讲述python的一些入门内容.本次讲解的并不是语法或者某个模块.                  python下载安装 大多数 Linux 发行版在默认安装的情况 ...

  3. pyDes 实现 Python 版的 DES 对称加密/解密--转

    https://my.oschina.net/leejun2005/blog/586451 手头有个 Java 版的 DES 加密/解密程序,最近想着将其 Python 重构下,方便后续脚本解析,捣鼓 ...

  4. 移动端自动化测试Appium 从入门到项目实战Python版☝☝☝

    移动端自动化测试Appium 从入门到项目实战Python版 (一个人学习或许会很枯燥,但是寻找更多志同道合的朋友一起,学习将会变得更加有意义✌✌)  说到APP自动化测试,Appium可是说是非常流 ...

  5. Python的包管理工具

    Python的包管理工具 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.为什么使用包管理 Python的模块或者源文件直接可以复制到目标项目目录中,就可以导入使用了. 但是为了 ...

  6. 北京大学公开课《数据结构与算法Python版》

    之前我分享过一个数据结构与算法的课程,很多小伙伴私信我问有没有Python版. 看了一些公开课后,今天特向大家推荐北京大学的这门课程:<数据结构与算法Python版>. 课程概述 很多同学 ...

  7. 尖端之作看逐浪-Zoomla!逐浪CMS python版发布

    免费下载:https://www.z01.com/down/3723.shtml Python是跻身于当代IT世界最流行和代码最高效的编程语言之一. 带着对技术的卓越追求.对客户的承诺.对品质的极致追 ...

  8. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  9. 数据结构:顺序表(python版)

    顺序表python版的实现(部分功能未实现) #!/usr/bin/env python # -*- coding:utf-8 -*- class SeqList(object): def __ini ...

随机推荐

  1. [Beta阶段]第九次Scrum Meeting

    Scrum Meeting博客目录 [Beta阶段]第九次Scrum Meeting 基本信息 名称 时间 地点 时长 第九次Scrum Meeting 19/05/15 大运村寝室6楼 40min ...

  2. SpatiaLite, load spatial extension first

  3. 2019年MTP管理技能提升培训笔记

    2019年MTP管理技能提升培训笔记 管理专题培训–MTP管理技能提升培训 高水准的问题分析解决 何为高水准 高 多层探寻,高度分析,即需要有深度 水 团队讨论,水平思考,即需要有广度 准 预防应变, ...

  4. Linux创建用户,SFTP只允许访问指定目录

    首先创建用户 useradd lus1passwd lus1 我这里配置lus1这个用户目录,为sftp指向目录,即/home/lus1/ vim /etc/ssh/sshd_config //这个记 ...

  5. 从 SVN 迁移至 Git 并保留所有 commit 记录

    yum install -y git-svn 用户映射文件user.txt,等号左边为svn账号,右边为Git用户名和邮箱.注意:svn中有多少用户就要映射多少 test1=test1<1472 ...

  6. ubuntu16.04下安装运行PL-SLAM

    PL-SLAM是Ruben Gomez-Ojeda大神融合点和线特征SLAM的最新成果,并开放了源代码,本博文记录安装运行PL-SLAM遇到的一些问题. 1源代码地址 https://github.c ...

  7. TensorFlow 8 bit模型量化

    本文基本参考自这篇文章:8-Bit Quantization and TensorFlow Lite: Speeding up mobile inference with low precision ...

  8. jmockit使用总结-MockUp重点介绍

    公司对开发人员的单元测试要求比较高,要求分支覆盖率.行覆盖率等要达到60%以上等等.项目中已经集成了jmockit这个功能强大的mock框架,学会使用这个框架势在必行.从第一次写一点不会,到完全可以应 ...

  9. webpack四个基础概念

    本文参考自:https://www.cnblogs.com/xiaohuochai/p/7002344.html webpack 核心概念:入口(entry).输出(output).加载器(loade ...

  10. proc 下创建与应用交互的可读写节点

    内核版本:Linux-4.14 随便写了个 proc 下节点的测试程序,可以用来与应用层交互. 也可以单独的用来做调试打印使用,例如封装个 my_printk 将信息单独存在节点内,然后可以在应用层 ...