def analyze_problem(problem_num): url = 'https://www.acmicpc.net/status?' query = { 'problem_id': problem_num, 'user_id': user_id, 'result_id': '4', 'language_id': '-1', 'from_mine': '1' } for k, v in query.items(): url += k + '=' + v + '&' table = dict() page = get_soup(url, query) rows = page.find('tbody').find_all('tr') if len(rows) == 0: return table for row in rows: column = row.find_all('td') language = column[6].text.strip() length = None length_text = column[7].text.strip() if len(length_text) != 0: length = length_text.split()[0] element = SubmitRecord(judge_id=column[0].text, mem=column[4].contents[0], time=column[5].contents[0], code_len=length) if table.get(language) is None: table[language] = element else: table[language] = min(table[language], element) problem_name = rows[0].find_all('td')[2].a['title'] screenLock.acquire() print('{:5s} {}'.format(problem_num, problem_name)) for l, e in table.items(): print('\t{:10s} {}'.format(l, e)) screenLock.release() return table
if __name__ == '__main__': user_id = input('enter nickname : ') """ 2021-03-02 아래 5줄 수정 """ # user_pw = getpass('enter password : '******'a=1; b=2; c=3; d=4;' : ") print( "오래된 언어의 경우 extensions.py를 적절히 수정해 주지 않으면 다운로드 도중 오류가 날 수도 있습니다. 해당 언어들 외에는 정상적으로 다운로드 잘 됩니다." ) print( "오류시 https://www.acmicpc.net/help/language/all에서 언어 번호를 참고하여 적절히 extensions.py 수정 바람" ) soup = get_soup('https://acmicpc.net/user/' + user_id) working_dir = os.path.join(os.getcwd(), user_id) if not os.path.exists(working_dir): os.makedirs(working_dir) problem_set = get_solved_problems(soup) get_submitted_files(problem_set)