背景
攻略情報まとめてくれているいつもの人が忙しいらしいどうしよう困った。誰か・・・誰か助けてくれ
目的
艦これイベントスレから海域攻略編成書き込みの番号を抽出する
コード
import sys import requests from bs4 import BeautifulSoup import re def getHenseiNo(url): res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') dts = soup.find_all('dt') # 1:名無しの提督@~ dds = soup.find_all('dd') # 内容 dct = dict() kaiikiPattern = r'【海域】.*(E-?\d-?\d?)' for dt, dd in zip(dts, dds): no = dt.find('a').get_text() for text in dd.get_text().split('\n'): ret = re.match(kaiikiPattern, text) if ret: kaiiki = ret.group(1) kaiiki = re.sub('E-', 'E', kaiiki) l = dct.get(kaiiki, []) l.append(no) dct[kaiiki] = l break return sorted(dct.items(), key=lambda x: x[0]) if __name__ == '__main__': ret = getHenseiNo(sys.argv[1]) for k, n in ret: print(f'{k}\n>>{",".join(n)}')
使い方と出力
$ python printHenseiNo.py http://jbbs.shitaraba.net/bbs/read.cgi/netgame/12394/1620448639/ E1-1 >>18,20,49,60,61,70,82 E1-2 >>19,21,24,28,57,71,78,83,114 E1-3 >>22,23,35,42,45,59,72,79,84 E2 >>58 E2-1 >>36,37,48,51,55,74,80,81,98 E2-2 >>38,54,56,69,85,94,101,103,107 E2-3 >>40,88,108,109,115 E3 >>99,117,122,135 E3-1 >>53,62,104,116,118,132 E3-2 >>63,64,102,105,110,119,123,133 E3-3 >>67,86,89,90,91,97,106,111,112,113,120,136,138 E4-1 >>127,128,131,134,140
謝辞
情報書き込んだりまとめたりしてくれる人ありがとう。いつもお世話になっています。感謝。
その他
札おおすぎてわけわからないたすけて