《明日方舟》Python版公开招募工具
生活随笔
收集整理的這篇文章主要介紹了
《明日方舟》Python版公开招募工具
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
工具介紹
根據(jù)輸入的標(biāo)簽,快速找出能夠招募4星,5星干員的標(biāo)簽組合,比如刷出了 重裝 | 男 | 支援 |術(shù)師 | 先鋒 五個(gè)標(biāo)簽,輸入效果如下:
注意:不支持高級干員和資深高級干員標(biāo)簽
使用環(huán)境
代碼
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可選標(biāo)簽:\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 + " 為無效標(biāo)簽")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("請輸入標(biāo)簽,使用空格隔開:\n").split()checkTags(input_tags)workers = getWorkers(input_tags, infos)if len(workers) > 0:printWorkers(workers)else:print("不能招聘高星干員")print("--------------------------------------\n") else:print("獲取數(shù)據(jù)失敗")數(shù)據(jù)來源
公開招募工具
轉(zhuǎn)載于:https://www.cnblogs.com/zhouzl/p/11015634.html
總結(jié)
以上是生活随笔為你收集整理的《明日方舟》Python版公开招募工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 爬虫学习笔记
- 下一篇: Python-----规范化开发