4번 문제또한
새로운 문법을 공부할 수 있는 좋은(?) 계기가.. 되었다.
문제 화면이다.
(4번 문제 화면)
(사진을 클릭한 화면)
44827을 url 끝에 입력하고 들어가니 비슷한 패턴의 숫자가 또 나와서
입력하였다.
세번째(?) 인가..
(손이 아플꺼야 화면)
정확히 이게 맞나 싶은 생각이 들때
이 문구가 나왔다.
이런식으로 계속 들어가야 정답이 나오는데
손으로는 힘들겠다.. 라는 생각이 들었다.
새로운 방법이 필요했고
파이썬에서 제공하는 url 관련 기능을 이용하기로 했다.
(파이썬 문서 참조)
여기 에 있는 것들 중에 urllib.request를 사용할 것이다.
먼저 url 내용을 가져오는 작업을 (실험? 을 통해) 하였다.
(문구가 나오는 화면)
내용을 가져오는 것은 read() 인것 같다.
이 내용을 보니 byte 형식이길래
decode를 해야겠다고 생각이 들었고
decode를 하였다.
(decode 화면)
decode 한 순간
내용이 사라졌다..
이 문제로 굉장히 난감하고 힘든 나날들을 보냈다.
데이터 내용을 접근만 하면 사라져서..
그리고 해결책을 찾아냈다.
urlopen으로 바로 여는게 아니라 그렇게 하면 안됬다.
request.Request로 얻어온 내용으로 open을 하고 그 내용을 read로 읽어 들인 후
decode를 하면 내용을 뽑아 올 수 있었다.
문서를 찾은것이라기보다 이것저것 노가다의 시도 끝에...
(24번째가 숫자이다.)
(뒤에 입력해야할 값을 뽑아냈다.)
이제 뒤에 입력할 내용까지 뽑아내는데 성공했다.
이제 이 값을 url주소에 입력하면서 반복적인 작업을 해줘야한다.
while 문으로 코드의 길이가 없으면 중지되게 계속 반복문을 돌렸다.
(처음 시도)
(결과화면)
아.. 3번째는 팔아프다는 어쩌구 문구 때문에 24번째가 아니었다.
고민없이 뒤에 94485를 수동으로 입력 후 다시 진행
(다른 문구)
2를 나누어서 다시 계속 진행하라고 했다.
음.. 16044를 2 나누어서 8022로 다시 진행
(8022 다시 진행)
(이번엔 또 다른...)
뭔가 착오가 있다고 나왔다.
일단 지금까지 규칙대로 nothing 뒤에 있는 저 숫자
63579를 입력했다.
(63579 입력)
(??! 정답?)
마지막에
peak.html이 나왔다.
내가 보던 정답 유형과 비슷해서 정답이라는게 느껴졌다.
(정답 입력)
(정답!)
정답이다.! :)
뒷걸음치다 소잡은 느낌이긴 하지만..
url 파이썬을 공부하게 된.. 계기가 되었다.
4번 해결..!
'WarGame > Python Challenge' 카테고리의 다른 글
Python Challenge - 5 (0) | 2017.01.18 |
---|---|
Python Challenge - 3번 (0) | 2017.01.02 |
Python Challenge - 2 (0) | 2017.01.01 |
Python Challenge - 1 (0) | 2017.01.01 |