Jeonhui {ios}

Baekjoon Projects - 1. github auto push baekjoon (1) [웹 크롤링] 본문

projects

Baekjoon Projects - 1. github auto push baekjoon (1) [웹 크롤링]

jeonhui 2022. 2. 21. 16:15

안녕하세요 Jeonhui 입니다.

이번에 baekjoon online judge 사이트를 이용해 세 가지 개인 프로젝트를 진행해보았습니다.

 


첫 번째 프로젝트는 baekjoon의 문제 풀이 결과를 가져와 맞았을 경우 깃허브에 자동으로 push 해주는 프로그램입니다.

전체 코드는  https://github.com/Jeonhui/baekjoon/blob/main/baekjoon_autoPush.py에 저장되어있습니다.

파이썬 패키지인 pygithub, requests, bs4를 이용하여 개발하였습니다.

 

먼저, pip3를 통해 

위 패키지들을 이용하기 위해 다음 명령어들을 입력해 줍니다.

pip3 install pygithub
pip3 install requests
pip3 install bs4

 

프로그램의 기본 설정을 위해 아래의 항목들을 입력해줍니다.

baekjoon_id = 'baekjoon_id'
token = 'ghp_~'
repository = 'user_name/repository'
user_github_file_path = '_'
user_file_path = '_'

다음은 아래와 같습니다.

baekjoon_id = 백준_ID
token = Githubtoken
repository = 'user_name/repository'
ex) 'Jeonhui/baekjoon'
user_github_file_path = github에 저장할 경로
user_file_path = 파일 경로

file_path의 default값은 "_"이고 "_"으로 되어있다면 해당 파일이 있는 현재 위치/solved/{problem_number}.py 파일을 찾게 됩니다.

 

이렇게 프로그램의 기본 설정을 마치겠습니다.

다음 시간에는 코드 설명을 해보겠습니다.


웹 스크래핑 (Web Scraping)

백준 온라인 저지는 웹 스크래핑을 금지하고 있습니다.

지나치게 많은 트래픽을 발생시키는 경우에는 사이트 이용이 정지됩니다.

스타트링크는 웹 스크래핑의 수요와 이유를 충분히 이해하고 있기 때문에, API를 제공할 계획이 있습니다.
https://help.acmicpc.net/rule

 

이용 규칙

블로그블로그에는 지속적으로 의미를 가질 수 있는 다음과 같은 글을 올릴 수 있습니다. 아래는 예시이며 아래 적히지 않은 내용도 가능합니다.알고리즘/자료구조 튜토리얼문제에 종속적이지

help.acmicpc.net

확인해본 결과 백준에서는 웹 스크래핑을 금지하고 있기 때문에 이 소스코드는 참고만 해주시기 바랍니다.