《明日方舟》Python版公开招募工具
生活随笔
收集整理的這篇文章主要介紹了
《明日方舟》Python版公开招募工具
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
工具介紹
根據輸入的標簽,快速找出能夠招募4星,5星干員的標簽組合,比如刷出了 重裝 | 男 | 支援 |術師 | 先鋒 五個標簽,輸入效果如下:
注意:不支持高級干員和資深高級干員標簽
使用環境
代碼
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版公开招募工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 爬虫学习笔记
- 下一篇: bootstrap-multiselec