工具介绍

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

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

使用环境

  1. 安装python3
  2. 安装模块:requests、BeautifulSoup4

代码

import requests, sys, bs4, itertoolsall_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"]:continuename = 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_infosdef printTip():tip = "\n可选标签:\n"count = 0for tag in all_tags:tip = tip + tag + " | "count += 1if 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 combsdef getWorkers(tags, worker_infos):ret = []combs = getCombs(tags)for comb in combs:workers = []over4 = Truefor 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 = Falseif over4 == True and len(workers) > 0:ret.append([comb, workers])return retdef 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("获取数据失败")

数据来源

公开招募工具

转载于:https://www.cnblogs.com/zhouzl/p/11015634.html

《明日方舟》Python版公开招募工具相关推荐

  1. 魔幻策划手游明日方舟5月1日正式发布:明日方舟电脑版攻略提起看

    明日方舟什么时候公测?明日方舟是一款魔物主题的策略手游,从内测开始到现在差不多两年了,现在明日方舟终终终终于要上线了!安卓用户预下载开启时间:4月30日15:00时,安卓服务器正式开启时间:5月1日1 ...

  2. python代码混淆工具,Python版代码混淆工具

    写在前面: 代码混淆,其实很简单.原理就是查找.替换而已.市面上有很多混淆工具,最好是在混淆工具的基础上,自己再写一下,二次混淆.算法也不难.如果需要全局混淆,以及自动混淆,那么就复杂一些了,需要再加 ...

  3. 银灰的拳击机器人_明日方舟:银灰画师对新泳装皮肤致歉 年一游果然名不虚传...

    明日方舟对于近期公开的即将登场的六星近卫干员银灰的新泳装皮肤,没想到引发了部分博士的争议和不满,借此作为银灰画师的龙崎一老师也正式发表了致歉声明,具体事件的前因后果,这里带来详细的说明. 具体事件的起 ...

  4. 明日方舟公式计算机,明日方舟公开招募计算器怎么用 公开招募计算工具分享...

    明日方舟公开招募经常会使用到计算器,那么计算机的使用方法大家都知道吗?计算工具其实很好用的,小编会在下方为大家详细介绍公开招募的计算方法,想要参与到公开招募中的小伙伴,赶紧和小编一起来学习一下公开招募 ...

  5. 明日方舟公式计算机,明日方舟公开招募计算机怎么用 公开招募计算工具分享...

    明日方舟公开招募经常会使用到计算器,那么计算机的使用方法大家都知道吗?计算工具其实很好用的,小编会在下方为大家详细介绍公开招募的计算方法,想要参与到公开招募中的小伙伴,赶紧和小编一起来学习一下公开招募 ...

  6. 明日方舟公式计算机,明日方舟公开招募计算器使用方法 角色对照表一览

    最近玩明日方舟这款游戏的玩家都在问,游戏里面的公开招募计算器怎么用?小编我特意整理了相关的资讯,明日方舟公开招募计算器是玩家自制的一个招明日方舟公开招募计算器怎么用募工具,下面就是明日方舟公开招募计算 ...

  7. 明日方舟公式计算机,明日方舟公开招募公式汇总

    明日方舟公开招募公式有哪些?游戏中我们要想得到干员的话是可以公开招募的,那么就有一些公式需要我们知道的呢,下面由18183小编为大家带来公开招募公式吧! 明日方舟公开招募公式汇总 近战位+男性:角峰( ...

  8. thymeleaf frame 局部刷新_明日方舟公开招募标签强制刷新 黑赫拉格加入

    明日方舟公开招募标签强制刷新,黑赫拉格加入.感谢您对<明日方舟>的关注与支持.<明日方舟>将于11月01日10:00 ~16:00的更新维护中对游戏内[公开招募]进行新增干员. ...

  9. jdk新版本没有appletviewer_明日方舟:你“老婆们”有没有进公招?新版本Tag大公开...

    随着一年半感谢祭的结束,<明日方舟>迎来了一波巨大的改变,除了第八章剧情与新的"危机合约",还有一个与玩家密切相关的功能也进行了改进,那就是公开招募系统,不知多少玩家在 ...

最新文章

  1. 【Leetcode | easy】反转整数
  2. Cpp 对象模型探索 / 程序转化语义
  3. Oracle性能调整的误区
  4. Ubuntu 13.04 软件安装
  5. LeetCode 961. 重复 N 次的元素
  6. Spring Boot 前后端分离解决跨越问题
  7. 【LA3487】最小割-经典模型 两种方法
  8. hello bash
  9. 重启用reboot后起不来_2021年中国“天眼”开放,美媒记者探访后感叹了……
  10. 创建你的第一个游戏Pong——让我们编写Pong
  11. 小D课堂 - 零基础入门SpringBoot2.X到实战_第9节 SpringBoot2.x整合Redis实战_37、分布式缓存Redis介绍...
  12. BZOJ4311:向量——题解
  13. android+4.0访问网络,Android 中从4.0以后无法在主线程访问网络的解决办法。
  14. 使用梦网云通讯平台解决手机验证码问题
  15. 通信加密原理(对称密钥、公钥、私钥)
  16. 数据结构与算法分析java语言描述 严蔚敏翻译_重读数据结构——严蔚敏C语言版...
  17. MyBatis学习之一
  18. AudioRecord的用法
  19. 动物识别系统的规则库
  20. zj-layout组件的布局

热门文章

  1. java scrollpane放按钮_java – 如何在BoxLayout上放置scrollPane?
  2. java swing 注册事件_比较Java Swing中三种注册事件的方法
  3. php培训js重要么,php何以被戏称为“世界上最好的语言”?请看它与js的对比!...
  4. bpmn2.0业务过程模型和符号_IT帮业务架构学习小组学习内容
  5. BootStrap笔记-按钮相关
  6. 信息安全工程师笔记-案例分析(二)
  7. Kafka笔记-搭建及单机生产者、消费者操作
  8. 编码风格工作笔记-初步模仿大佬编码风格
  9. Qt工作笔记-使用QCustomplot实现鼠标拖动数据点画曲线
  10. C/C++中如何使用typedef给函数指针取别名使其更具可读性