AtCoder writer I wrote a script to aggregate the contests for each writer
Overview
For AtCoder issues, we created a scraping script for the AtCoder announcement site to aggregate which writers created which contest issues.
background
The problem of AtCoder is different every time, but each writer has a habit (?)
So, if you ask the past questions created by the writer before the contest, you may be able to get used to the writer's problems (habits). I don't know.
Source
import requests
from bs4 import BeautifulSoup
def main():
writers = dict()
for i in range(1,600):
#Announcement is https://atcoder.jp/posts/+Number format
#It is necessary to change 600 in the range of the for statement as appropriate and execute it (because I do not know how many notifications there are)
load_url = "https://atcoder.jp/posts/" + str(i)
html = requests.get(load_url)
soup = BeautifulSoup(html.content, "html.parser")
title = soup.title.text
#Process only when the contest is announced
if title.find("Announcement") >=0 :
contestName = title[0:title.find("Announcement")-1]
#Since the writer name etc. are escaped, parse the html part in the text again
soup2 = BeautifulSoup(soup.text,"html.parser")
username_elements = soup2.find_all('a', class_='username')
if len(username_elements) > 0:
for item in username_elements:
#item.The writer name is stored in text
if item.text in writers:
writers[item.text].append(contestName)
else:
writers[item.text] = [contestName]
#output
for writer in writers:
print(writer, writers[writer])
if __name__ == '__main__':
main()
result
- It's hard to see and it's Sumimasen.
Results as of November 14, 2020 summary>
snuke ['AtCoder Grand Contest 001', 'CODE FESTIVAL 2016', 'CODE FESTIVAL 2016', 'CODE FESTIVAL 2017 Qualification Round B', 'Chokudai SpeedRun 002']
cgy4ever ['AtCoder Grand Contest 001']
DEGwer ['AtCoder Grand Contest 001','AtCoder Grand Contest 003','CODE FESTIVAL 2016 Qualifying B','AtCoder Grand Contest 009','AtCoder Grand Contest 015','AtCoder Regular Contest 076 / Beginner Contest 065',' CODE FESTIVAL 2017 Qual A','Tenka1 Programmer Contest','AtCoder Regular Contest 084 / Beginner Contest 077','COLOCON -Colopl programming contest 2018- Preliminary','AtCoder Regular Contest 088 / Beginner Contest 083','AtCoder Grand Contest 024','Mujin Programming Challenge 2018','AtCoder Beginner Contest 105','AtCoder Regular Contest 102 / Beginner Contest 108',' Tenka1 Programmer Contest / Tenka1 Programmer Beginner Contest','CADDi 2018 / CADDi 2018 for Beginners',' AtCoder Grand Contest 030',' "Everyone's Pro Contest 2019",' AtCoder Grand Contest 031 and World Tour Finals 2019/20',' Tenka1 Programmer Contest 2019 / Tenka1 Programmer Beginner Contest 2019','AtCoder Beginner Contest 130','AtCoder Beginner Contest 131','AtCoder Beginner Contest 132','AtCoder Grand Contest 035','AtCoder Beginner Contest 134','AtCoder Beginner Contest 136','AtCoder Beginner Contest 137','AtCoder Grand Contest 039','AtCoder Beginner Contest 148',' AtCoder Beginner Contest 149','AtCoder Beginner Contest 150',' AtCoder Beginner Contest 151','AtCoder Beginner Contest 152',' AtCoder Beginner Contest 154','AtCoder Beginner Contest 159','AtCoder Beginner Contest 160',' AtCoder Beginner Contest 165','AtCoder Grand Contest 046']
Um_nik ['AtCoder Grand Contest 001']
yosupo ['AtCoder Grand Contest 001','AtCoder Regular Contest 058 / Beginner Contest 042','AtCoder Grand Contest 005','AtCoder Regular Contest 073 / Beginner Contest 060','AtCoder Regular Contest 079 / Beginner Contest 068',' AtCoder Regular Contest 085 / AtCoder Beginner Contest 078','AtCoder Petrozavodsk Contest 001','AtCoder Regular Contest 092 / Beginner Contest 091',' AtCoder Grand Contest 026',' AtCoder Grand Contest 031 and World Tour Finals 2019/20', 'AtCoder Grand Contest 034','AtCoder Beginner Contest 130',' AtCoder Beginner Contest 133',' AtCoder Beginner Contest 138',' AtCoder Grand Contest 043',' ACL Contest 1',' ACL Contest 2',' AtCoder Regular Contest 107','AtCoder Grand Contest 049']
jcvb ['AtCoder Grand Contest 001']
kyuridenamida ['AtCoder Regular Contest 058 / Beginner Contest 042']
sugim48 ['AtCoder Grand Contest 002','AtCoder Grand Contest 004','CODE FESTIVAL 2016 Qualifying A',' AtCoder Grand Contest 006',' AtCoder Regular Contest 064 / Beginner Contest 048','AtCoder Grand Contest 008',' AtCoder Regular Contest 074 / Beginner Contest 062','AtCoder Grand Contest 016','AtCoder Regular Contest 080 / AtCoder Beginner Contest 069','CODE FESTIVAL 2017 Qual A','CODE FESTIVAL 2017 Qual C','AtCoder Regular Contest 087 / Beginner Contest 082','AtCoder Petrozavodsk Contest 001','AtCoder Grand Contest 026','AtCoder Regular Contest 101 / Beginner Contest 107','AtCoder Grand Contest 027','AtCoder Grand Contest 030',' AtCoder Grand Contest 032 ',' AtCoder Grand Contest 048']
sigma425 ['AtCoder Regular Contest 059 / Beginner Contest 043','AtCoder Regular Contest 062 / Beginner Contest 046','CODE FESTIVAL 2016 Qualifying C',' AtCoder Regular Contest 070 / Beginner Contest 056','AtCoder Regular Contest 082 / AtCoder Beginner Contest 072','AtCoder Regular Contest 089 / Beginner Contest 086','AtCoder Petrozavodsk Contest 001',' AtCoder Regular Contest 097 / Beginner Contest 097','AtCoder Grand Contest 034','AtCoder Beginner Contest 135',' AtCoder Grand Contest 043','AtCoder Regular Contest 107']
evima ['AtCoder Regular Contest 059 / Beginner Contest 043', 'AtCoder Regular Contest 075 / Beginner Contest 063', 'AtCoder Beginner Contest 085', 'AtCoder Regular Contest 096 / Beginner Contest 095', 'AtCoder Beginner Contest 104', 'AtCoder Beginner Contest 114', 'CADDi 2018 / CADDi 2018 for Beginners', 'AtCoder Beginner Contest 119', 'AtCoder Beginner Contest 122', 'AtCoder Beginner Contest 133', 'AtCoder Beginner Contest 134', 'AtCoder Beginner Contest 135', 'AtCoder Beginner Contest 136', 'AtCoder Beginner Contest 138', 'AtCoder Beginner Contest 139', 'AtCoder Beginner Contest 158', 'AtCoder Beginner Contest 161', 'AtCoder Beginner Contest 170', 'AtCoder Beginner Contest 171', 'AtCoder Beginner Contest 172', 'AtCoder Beginner Contest 173', 'AtCoder Beginner Contest 174', 'AtCoder Beginner Contest 181', 'AtCoder Beginner Contest 182']
climpet ['AtCoder Regular Contest 060 / Beginner Contest 044']
tozangezan ['AtCoder Regular Contest 061 / Beginner Contest 045','AtCoder Beginner Contest 126',' AtCoder Beginner Contest 127',' AtCoder Beginner Contest 128',' AtCoder Beginner Contest 129',' AtCoder Beginner Contest 132',' AtCoder Beginner Contest 138','AtCoder Beginner Contest 148','AtCoder Beginner Contest 149','AtCoder Beginner Contest 150',' AtCoder Beginner Contest 151',' AtCoder Beginner Contest 152',' AtCoder Beginner Contest 154','AtCoder Beginner Contest 159','AtCoder Beginner Contest 161','AtCoder Beginner Contest 164','AtCoder Beginner Contest 165','AtCoder Beginner Contest 170',' AtCoder Beginner Contest 171',' AtCoder Beginner Contest 172',' HHKB Programming Contest 2020','AtCoder Beginner Contest 181']
chokudai ['DISCO presents Discovery Channel Code Contest 2016 Qualifying','DISCO presents Discovery Channel Code Contest 2016 Qualifying','CODE FESTIVAL 2016','CODE FESTIVAL 2016','CODE FESTIVAL 2016','CADDi 2019','AtCoder Grand Contest 035','AtCoder Beginner Contest 161']
camypaper ['DISCO presents Discovery Channel Code Contest 2016 Qualifying',' DISCO presents Discovery Channel Code Contest 2016 Qualifying',' AtCoder Regular Contest 069 / Beginner Contest 055','AtCoder Grand Contest 012','AtCoder Regular Contest 078 / Beginner Contest 067','AtCoder Grand Contest 027','AtCoder Grand Contest 032',' Exa Wizards 2019','diverta 2019 Programming Contest',' AtCoder Beginner Contest 133',' AtCoder Grand Contest 035',' AtCoder Beginner Contest 138' ,'AtCoder Beginner Contest 150','AtCoder Beginner Contest 162',' Acing Programming Contest 2020','AtCoder Regular Contest 105']
japlj ['AtCoder Regular Contest 063 / Beginner Contest 047']
dreamoon ['AtCoder Grand Contest 007']
yutaka1999 ['CODE FESTIVAL 2016','CODE FESTIVAL 2016','CODE FESTIVAL 2016','AtCoder Grand Contest 010',' AtCoder Grand Contest 014',' AtCoder Grand Contest 025','AtCoder Grand Contest 029','AtCoder Grand Contest 031 and World Tour Finals 2019/20','AtCoder Grand Contest 033','AtCoder Grand Contest 037',' 2nd National Unified Programming King Qualifying',' Tokio Marine & Nichido \ u3000 Programming Contest 2020']
catupper ['CODE FESTIVAL 2016']
rng_58 ['CODE FESTIVAL 2016', 'CODE FESTIVAL 2017 Qualification Round B', 'AtCoder Beginner Contest 155']
hogloid ['AtCoder Regular Contest 065 / Beginner Contest 049','AtCoder Regular Contest 072 / Beginner Contest 059','AtCoder Grand Contest 031 and World Tour Finals 2019/20']
maroonrk ['AtCoder Regular Contest 066 / Beginner Contest 050','AtCoder Regular Contest 067 / Beginner Contest 052','AtCoder Grand Contest 013','AtCoder Grand Contest 018','CODE FESTIVAL 2017 Qualification Round B',' AtCoder Grand Contest 023','AtCoder Regular Contest 098 / Beginner Contest 098','AtCoder Regular Contest 100 / Beginner Contest 102',' AtCoder Grand Contest 028',' AtCoder Grand Contest 031 and World Tour Finals 2019/20',' AtCoder Grand Contest 034','AtCoder Grand Contest 036','AtCoder Grand Contest 038','AtCoder Grand Contest 040','AtCoder Grand Contest 043','AtCoder Grand Contest 045','ACL Contest 1','ACL Contest 2' ,'AtCoder Grand Contest 048','AtCoder Regular Contest 107','AtCoder Grand Contest 049']
hec ['AtCoder Beginner Contest 051', 'AtCoder Beginner Contest 054', 'AtCoder Beginner Contest 057', 'AtCoder Beginner Contest 061']
semiexp ['AtCoder Grand Contest 011','AtCoder Grand Contest 017','AtCoder Regular Contest 081 / AtCoder Beginner Contest 071','AtCoder Regular Contest 086 / Beginner Contest 081','AtCoder Regular Contest 095 / Beginner Contest 094', 'AtCoder Regular Contest 099 / Beginner Contest 101',' AtCoder Regular Contest 103 / Beginner Contest 111',' CADDi 2018 / CADDi 2018 for Beginners',' AtCoder Grand Contest 030',' Exa Wizards 2019']
nuip ['AtCoder Regular Contest 071 / Beginner Contest 058', 'AtCoder Regular Contest 077 / Beginner Contest 066', 'AtCoder Regular Contest 095 / Beginner Contest 094', 'AtCoder Regular Contest 103 / Beginner Contest 111', 'AtCoder Beginner Contest 163']
e869120 ['AtCoder Beginner Contest 064', 'AtCoder Beginner Contest 076', 'AtCoder Beginner Contest 088', 'AtCoder Beginner Contest 096', 'AtCoder Beginner Contest 100']
square1001 ['AtCoder Beginner Contest 064','AtCoder Beginner Contest 076','AtCoder Beginner Contest 088','AtCoder Beginner Contest 096',' AtCoder Beginner Contest 100',' AtCoder Beginner Contest 105','AtCoder Beginner Contest 106' ,'AtCoder Beginner Contest 123','diverta 2019 Programming Contest 2','AtCoder Beginner Contest 139','DISCO presents Discovery Channel Code Contest 2020 Qualifying',' Sumitomo Mitsui Trust Bank Programming Contest 2019',' M-SOLUTIONS Procon Open 2020']
tourist ['AtCoder Grand Contest 019', 'AtCoder Grand Contest 020', 'AtCoder Grand Contest 041']
wo01 ['AtCoder Regular Contest 083 / AtCoder Beginner Contest 074','CODE FESTIVAL 2017 Qual C','AtCoder Regular Contest 090 / Beginner Contest 087','AtCoder Regular Contest 093 / Beginner Contest 092',' Acing Programming Contest 2019' ,'AtCoder Beginner Contest 139','Keyence Programming Contest 2020','AtCoder Beginner Contest 164']
hasi ['Tenka1 Programmer Contest']
namonakiacc ['DISCO presents Discovery Channel Code Contest 2017 Qualifying',' AtCoder Beginner Contest 079','AtCoder Beginner Contest 080','AtCoder Beginner Contest 084','AtCoder Beginner Contest 089','AtCoder Beginner Contest 099','AtCoder Beginner Contest 159','AtCoder Beginner Contest 161']
degwer ['AtCoder Grand Contest 021', 'AtCoder Regular Contest 091 / Beginner Contest 090', 'AtCoder Regular Contest 094 / Beginner Contest 093']
zscoder ['AtCoder Grand Contest 022']
drafear ['AtCoder Beginner Contest 103','AtCoder Beginner Contest 117','AtCoder Beginner Contest 118','AtCoder Beginner Contest 120','AtCoder Beginner Contest 121','AtCoder Beginner Contest 124','AtCoder Beginner Contest 125' ,'AtCoder Beginner Contest 126','AtCoder Beginner Contest 127',' AtCoder Beginner Contest 128',' AtCoder Beginner Contest 133',' AtCoder Beginner Contest 134','AtCoder Beginner Contest 135',' AtCoder Beginner Contest 136', 'AtCoder Beginner Contest 137',' 1st Japan's Strongest Programmer Student Championship-Preliminary-',' AtCoder Beginner Contest 139',' AtCoder Beginner Contest 140',' AtCoder Beginner Contest 141',' AtCoder Beginner Contest 142',' AtCoder Beginner Contest 152','AtCoder Beginner Contest 155']
satashun ['Mujin Programming Challenge 2018',' Keyence Programming Contest 2019','AtCoder Beginner Contest 127','AtCoder Beginner Contest 128',' AtCoder Beginner Contest 129','diverta 2019 Programming Contest 2',' AtCoder Beginner Contest 130 ',' AtCoder Beginner Contest 131',' AtCoder Beginner Contest 136',' AtCoder Beginner Contest 147',' AtCoder Beginner Contest 150',' AtCoder Beginner Contest 151',' AtCoder Beginner Contest 158',' AtCoder Beginner Contest 159' ,'AtCoder Beginner Contest 160','NOMURA Programming Contest 2020','AtCoder Beginner Contest 175','AtCoder Beginner Contest 179','AtCoder Regular Contest 104']
E869120 ['AtCoder Beginner Contest 105','AtCoder Beginner Contest 106',' AtCoder Beginner Contest 123','diverta 2019 Programming Contest 2','AtCoder Beginner Contest 139','DISCO presents Discovery Channel Code Contest 2020 Qualifying',' Sumitomo Mitsui Trust Bank Programming Contest 2019',' M-SOLUTIONS Procon Open 2020']
IH19980412 ['Keyence Programming Contest 2019','AtCoder Grand Contest 031 and World Tour Finals 2019/20','AtCoder Beginner Contest 137',' AtCoder Beginner Contest 149','AtCoder Beginner Contest 152']
['AtCoder Beginner Contest 116']
gazelle ['AtCoder Beginner Contest 126','AtCoder Beginner Contest 128',' AtCoder Beginner Contest 130','AtCoder Beginner Contest 131','AtCoder Beginner Contest 132','AtCoder Beginner Contest 134','AtCoder Beginner Contest 135' ,'AtCoder Beginner Contest 137',' 1st Japan's Strongest Programmer Student Championship-Preliminary-',' AtCoder Beginner Contest 139',' AtCoder Beginner Contest 140',' AtCoder Beginner Contest 143',' AtCoder Beginner Contest 148', 'AtCoder Beginner Contest 150',' AtCoder Beginner Contest 156',' AtCoder Beginner Contest 162',' AtCoder Beginner Contest 163',' AtCoder Beginner Contest 166',' AtCoder Beginner Contest 167',' NOMURA Programming Contest 2020',' AtCoder Beginner Contest 170','AtCoder Beginner Contest 171','AtCoder Beginner Contest 173']
potetisensei ['AtCoder Beginner Contest 127', 'AtCoder Beginner Contest 128', 'AtCoder Beginner Contest 129', 'AtCoder Beginner Contest 132', 'AtCoder Beginner Contest 133', 'AtCoder Beginner Contest 134', 'AtCoder Beginner Contest 137', 'AtCoder Beginner Contest 167']
yuma000 ['AtCoder Beginner Contest 128', 'AtCoder Beginner Contest 129', 'diverta 2019 Programming Contest 2', 'AtCoder Beginner Contest 130', 'AtCoder Beginner Contest 131', 'AtCoder Beginner Contest 132', 'AtCoder Beginner Contest 133', 'AtCoder Beginner Contest 134', 'AtCoder Beginner Contest 139', 'AtCoder Beginner Contest 149', 'AtCoder Beginner Contest 150', 'AtCoder Beginner Contest 163', 'AtCoder Beginner Contest 169', 'AtCoder Beginner Contest 170', 'AtCoder Beginner Contest 182']
yokozuna57 ['M-SOLUTIONS Pro Contest Open',' AtCoder Beginner Contest 137','AtCoder Beginner Contest 152','AtCoder Beginner Contest 159']
sheyasutaka ['AtCoder Beginner Contest 129','AtCoder Beginner Contest 131','AtCoder Beginner Contest 135',' AtCoder Beginner Contest 138',' 1st Japan Strongest Programmer Student Championship-Preliminary-',' AtCoder Beginner Contest 141' ,'AtCoder Beginner Contest 144','AtCoder Beginner Contest 147','AtCoder Beginner Contest 148','AtCoder Beginner Contest 154','AtCoder Beginner Contest 155','AtCoder Beginner Contest 161','AtCoder Beginner Contest 165', 'AtCoder Beginner Contest 166','AtCoder Beginner Contest 167',' AtCoder Beginner Contest 168',' AtCoder Beginner Contest 171',' AtCoder Beginner Contest 172',' AtCoder Beginner Contest 173',' AtCoder Beginner Contest 180']
beet ['AtCoder Beginner Contest 140','AtCoder Beginner Contest 141','AtCoder Beginner Contest 142',' AtCoder Beginner Contest 143',' AtCoder Beginner Contest 146',' AtCoder Beginner Contest 148',' AtCoder Beginner Contest 149' ,'AtCoder Beginner Contest 151','AtCoder Beginner Contest 152',' AtCoder Beginner Contest 155',' Hitachi, Ltd. Social Systems Division Programming Contest 2020',' AtCoder Beginner Contest 165',' AtCoder Beginner Contest 172',' AtCoder Beginner Contest 179','AtCoder Regular Contest 106']
kort0n ['AtCoder Beginner Contest 140','AtCoder Beginner Contest 141','AtCoder Beginner Contest 142',' AtCoder Beginner Contest 143',' AtCoder Beginner Contest 144','AtCoder Beginner Contest 145',' AtCoder Beginner Contest 146' ,'AtCoder Beginner Contest 147','AtCoder Beginner Contest 151',' AtCoder Beginner Contest 156',' AtCoder Beginner Contest 157',' Hitachi, Ltd. Social Systems Division Programming Contest 2020',' AtCoder Beginner Contest 165',' AtCoder Beginner Contest 166','AtCoder Beginner Contest 167','AtCoder Beginner Contest 170','AtCoder Beginner Contest 176','AtCoder Regular Contest 106']
ynymxiaolongbao ['AtCoder Beginner Contest 142', 'AtCoder Beginner Contest 145', 'AtCoder Beginner Contest 160', 'AtCoder Beginner Contest 161', 'AtCoder Beginner Contest 162', 'AtCoder Beginner Contest 163', 'AtCoder Beginner Contest 164', 'AtCoder Beginner Contest 165', 'AtCoder Beginner Contest 166', 'AtCoder Beginner Contest 169', 'AtCoder Beginner Contest 170', 'AtCoder Beginner Contest 172', 'AtCoder Beginner Contest 173', 'AtCoder Beginner Contest 174', 'AtCoder Beginner Contest 176', 'AtCoder Beginner Contest 177', 'AtCoder Beginner Contest 178', 'AtCoder Beginner Contest 180', 'AtCoder Beginner Contest 181']
kyopro_friends ['AtCoder Beginner Contest 144', 'AtCoder Beginner Contest 145', 'AtCoder Beginner Contest 146', 'AtCoder Beginner Contest 147', 'AtCoder Beginner Contest 148', 'AtCoder Beginner Contest 149', 'AtCoder Beginner Contest 150', 'AtCoder Beginner Contest 151', 'AtCoder Beginner Contest 152', 'AtCoder Beginner Contest 153', 'AtCoder Beginner Contest 154', 'AtCoder Beginner Contest 159', 'AtCoder Beginner Contest 160', 'AtCoder Beginner Contest 161', 'AtCoder Beginner Contest 162', 'AtCoder Beginner Contest 163', 'AtCoder Beginner Contest 164', 'AtCoder Beginner Contest 166', 'AtCoder Beginner Contest 167', 'AtCoder Beginner Contest 169', 'AtCoder Beginner Contest 171', 'AtCoder Beginner Contest 172', 'AtCoder Beginner Contest 173', 'AtCoder Beginner Contest 174', 'AtCoder Beginner Contest 176', 'AtCoder Beginner Contest 177', 'AtCoder Beginner Contest 179', 'AtCoder Beginner Contest 180', 'AtCoder Beginner Contest 182']
tempura0224 ['AtCoder Beginner Contest 146','AtCoder Beginner Contest 158',' Hitachi, Ltd. Social Systems Division Programming Contest 2020',' AtCoder Beginner Contest 159',' AtCoder Beginner Contest 162',' AtCoder Beginner Contest 167',' AtCoder Beginner Contest 169','AtCoder Regular Contest 106','AtCoder Beginner Contest 181']
latte0119 ['AtCoder Beginner Contest 152', 'AtCoder Beginner Contest 154', 'AtCoder Beginner Contest 159', 'AtCoder Beginner Contest 160', 'AtCoder Beginner Contest 161', 'AtCoder Beginner Contest 163', 'AtCoder Beginner Contest 164', 'AtCoder Beginner Contest 169']
heno239 ['Hitachi, Social Systems Division Programming Contest 2020','AtCoder Regular Contest 106']
rng58_admin ['Panasonic Programming Contest 2020','ACL Contest 1','ACL Beginner Contest']
Kmcode ['AtCoder Beginner Contest 164', 'AtCoder Beginner Contest 171']
dario2994 ['AtCoder Grand Contest 044']
kobae964 ['NOMURA Programming Contest 2020']
wata ['Introduction to Heuristics Contest','HACK TO THE FUTURE 2021 Qualifying']
Errichto ['AtCoder Grand Contest 047']
tatyam ['AtCoder Beginner Contest 181']
June_boy ['AtCoder Beginner Contest 182']
QCFium ['AtCoder Beginner Contest 182']
Attention / Disclaimer
Mizoono does not take any responsibility for the damage caused by this script and the result, and the result of the contest.