Python Challenge level 4
2016.12.21.
우선 linkedlist.html로 접속을 하면
이렇게 뜬다.
그래서 다시 linkedlist.php로 접속을 하면 문제가 나온다.
우선 페이지 소스를 보면 주석 처리된 부분이 있다.
urllib을 활용해야하는 것 같다. 사실 이것만 봐선 감이 안온다. url 주소를 이용해 뭐 400번 정도만 부르트 포싱을 하면 되는 것 같은데 아직 잘 모르겠다.
그런데 마우스를 움직이다가 사진 위에 마우스를 올렸을 때 마우스 모양이 누를 수 있도록 바뀌는 걸 확인했다. 그래서 사진을 눌렀더니 새로운 페이지가 열렸다.
뭔가 nothing값을 400번 정도 노가다하며 바꿔야하는 거 같은 느낌이 들지만 일단 nothing에 44827을 넣어보자.
또 nothing값을 준다. 뜨는 문장의 형식이 같은 걸 보니 파이썬으로 ‘and thd next nothing is’부분을 제외한 숫자만 읽어와 ‘/linkedlist.php?nothing=숫자’이렇게 주소 이동하도록 하고 또 그 url의 숫자 정보만 읽고 주소 이동하고 이런 식으로 짜야할 것 같다. 그냥 무한루프 돌려놓으면 될 거 같다.
혹시 모르니 숫자가 또 and the next nothing is 뒤에 나오는 게 확실한 건지 확인하기 위해 45439로 이동을 해보았다.
확인하기 무섭게 손이 피곤할 테니 작작하라는 거 같다.
nothing=까지 url에 넣고 nothing의 값은 nothing 변수에 해당하는 값을 str형으로 받아오는 num이 된다. next에는 url과 str형인 num을 이어받아 주소로 읽는다.
그 주소의 내용에 and the next nothing is를 제외한 내용 즉, 숫자를 content변수에 넣고 다시 link함수의 인자 nothing에 content를 반환함으로써 다시 또 다른 주소를 열도록 한다.
코드에는 link(94476)이라 되어있는데 처음에 94485부터 시작했다가 중간에 and the next nothing is 94476에서 멈춰서 실행을 중지시키고 코드를 수정한 후 다시 돌렸다.
계속 and the next nothing is 숫자가 계속 나오다가 어느 순간 2로 나누고 계속하라는 문장이 뜬다. 근데 사실 코드 돌려놓고 다른 걸 하다가 확인해보니 Yes. Divide by two and keep going을 발견하기 전에 peak.html이 나온 걸 봤다. 원래 저기서 멈추고 코드를 2로 나누는 걸로 수정한 후에 다시 실행시켜야하는데 다른 걸 하느라 너무 오래 돌려놨더니 이미 답이 나왔다. 그래도 원래 의도한대로 풀어보자.
그래서 저기 num값을 결정하는 코드 부분에 수정을 했다.
이렇게 하고 다시 돌렸는데 어차피 똑같이 계속 숫자 받아 주소 넣고 하는 식이니까 파이썬 코드를 짜서 어쨌든 peak.html을 본 거에 만족한다.
'PYTHON > python_challenge' 카테고리의 다른 글
Python Challenge level 6 (0) | 2016.12.23 |
---|---|
Python Challenge level 5 (0) | 2016.12.22 |
Python Challenge level 3 (0) | 2016.11.23 |
Python Challenge level 2 (0) | 2016.11.14 |
Python Challenge level 1 (0) | 2016.11.14 |