AiPE

[SecretMode GUI] 4. URL 끝 숫자가 바뀌는 사이트 URL 자동 추적 프로그램 본문

[XiBBaL] Development Project/SecretMode GUI

[SecretMode GUI] 4. URL 끝 숫자가 바뀌는 사이트 URL 자동 추적 프로그램

Oshimaker XiBBaL 2023. 2. 8. 10:58
반응형

제목을 보고 어떤 사이트인지 눈치를 챈 사람이 있다면 여기서는 언급하지 않아주기를 바란다..

 

친구가 해당 사이트 링크를 열심히 찾길래 "URL 끝 숫자가 바뀌는 사이트의 URL 주소를 자동으로 찾아주는 프로그램을 만들어보면 어떨까?"라는 생각을 하게 됐고, 원래 만들던 통합관리시스템인 SecretMode GUI에 하나의 기능으로서 추가하면 좋을 것 같아서 개발하게 되었다.

 

 

 

1. 사이트 분석

해당 사이트는 검열을 피하기 위해 URL주소 내의 숫자를 수시로 변경한다.

매번 바뀌는 주소를 매번 외우기 힘들어서 이 주소를 자동으로 추적해 알려주는 것이 이 프로그램의 목적이다.

 

"그냥 구글에 검색하면 되는거 아니냐"라고 생각할 수도 있는데, 구글에 쳐서 잘 안나올 때도 있고 해당 사이트로의 링크를 연결해주는 또다른 중계 사이트로 접속되는 경우가 많은 것 같다.

 

해당 사이트의 주소는 "https://XXX+숫자.com"의 구성으로 이루어져 있다.

현재의 숫자는 200번대이고, 주소를 바꿀때마다 1씩 증가하는게 원칙이라고 한다. 물론 1씩 증가하지 않고 갑자기 확 뛰는 경우도 있다고 한다. 나도 정확한 원리는 모른다.

 

 

 

2. 코드 순서도

대강 이런식으로 만들어보려고 한다.

정상적으로 접속되는 사이트의 경우 Request.get("URL")을 했을때 <Response [200]>가 반환되는데, 이걸 이용할거다. 얼마전에 Laftel Downloader만들면서 알게된건데, 이렇게 이용할줄은 몰랐다.

 

순서도에는 나와있지 않지만 사용자 명령이 "3"일 경우 Program Information이 출력되게 해놓았다. Program Information에는 프로그램 이름, 버전 정보, 개발자 GitHub 주소를 넣어두었다.

 

 

 

3. 코딩

  • 원래는 i = 999까지 시도해도 Response가 200이 나오지 않을 경우 i=1부터 다시 시도하는 부분을 넣을 계획이었는데 필요 없다고 생각해서 삭제했다.
  • Response값은 원래 String이 아니기 때문에 str로 감싸 string으로 만든 후 200인지의 여부를 판별했다.
  • 해당 사이트가 "불법" 사이트이기 때문에 여기다가 Full 코드를 올려버리면 정책위반이 될 수도 있어서 자제했다. 완전한 소스코드는 GitHub에 올려두었으니 아래 링크에서 확인 가능하다.
  • GitHub 소스코드 바로가기
  • 실제 URL 주소가 바뀌어봐야지 확실히 알겠지만, 딱히 오류 날만한 것도 없어 보이고, 현재로선 정상작동한다. 실제 URL 주소가 바뀌면 다시 테스트해볼 생각이다.

 

 

4. 디버그

사실 아까 테스트해본답시고 실수로 headers정보 없이 Request.get("url")을 했다가 사이트에서 일시적인 IP밴을 먹었다.

 

내가 파이썬을 경유해 접속한 탓에, 나를 크롤링봇으로 인식해 서버측 봇이 정지시킨 듯 하다.

사진을 올릴까 했는데 내가 특정될까봐 올리지 않겠다.

 

짠 코드 내에는 headers정보를 포함해 user-agent탑재, 가짜 플러그인 탑재 등 봇으로 인식하는 것을 방지하기 위한 여러가지 장치를 해두었으니까 나처럼 IP밴을 먹을 일은 아마도 없을 것이다.. 아마도.

 

 

 

5. 단일 .exe 파일로 만들기

쓰기 편하게 Pyinstaller로 단일 실행파일로 만들어주겠다. 용량은 약 83MB.

완성된 exe 파일과 소스 코드는 내 GitHub에 올려두었다.

 

▷ GitHub 바로가기 (사이트 주소 노출로 인해 대체텍스트)

 

만드는데에는 사이트 분석부터 코드 구상/작성, 디버그, 유저경험 개선, 깃허브 업로드까지 6시간정도 걸렸다.

반응형