재미로 시작했던 이 여정의 막을 내릴 때가 왔네요. 그 동안 총 3개의 요청방법을 알게되었습니다. 요청 1. 평창 동계 올림픽의 모든 입장권 리스트 얻음 요청 2. 특정 입장권의 경기 정보를 얻음 요청 3. 특정 입장권의 가격 정보를 얻음 알고리즘은 간단합니다. 알고리즘이라고 하기도 뭐한 수준이지만import requests def get_session_list(): url = "https://tickets.pyeongchang2018.com/Session/GetSessionList"; payload = { "Culture":"ko-kr", "SDate":"2018-02-08", "EDate":"2018-02-25", "SearchKey":"", "SeatCount":0, "Disciplines":"",..
경기 상세 페이지에서 요청하는 데이터를 한번 살펴봅시다. 4개의 요청으로 보이지만 데이터가 표시되는 건 짝수번째 입니다. 첫번째 요청은 경기 자체에 대한 상세 정보를 보여주는 것 같네요. https://ticketapi.pyeongchang2018.com/api/Session/GetSession/?Culture=ko-kr&SessionCode=CUR01 API라는 단어가 포함된 URL이네요. 이렇게 어렵게 찾지 않아도 API로 제공하고 있을지도 모르겠네요. 경기에 대한 정보를 나타내는 상단을 구성하는 데이터인 것 같네요. 그렇다면 하단은 두 번째 데이터가 구성하겠군요. 경기 정보와는 다르게 두번째 정보는 여러 데이터의 다발로 구성되어 있네요. 해당 경기에 배정된 입장권이 카테고리별로(일반A, 휠체어A, ..
심심풀이로 쓴 글이 벌써 5부네요. 데이터가 리스트를 어떻게 구성하는지 한번 추론해봅시다. 리스트에 보여지는 내용과 데이터를 매칭 해보았습니다. 데이터를 있는 그대로 사용해서 크게 고민할 것도 없었습니다. 예매 가능성만 빼구요. Ctrl + Shift + C를 누르면 화면에 표시된 부분에 해당하는 HTML 코드를 찾아줍니다. ... 뭔가 딱 봐도 예매 가능성처럼 생긴 부분이네요 뭔가 우리가 가진 데이터를 가지고 저 부분을 수정하는 스크립트가 있을 것 같은 느낌이 강하게 드는군요. 리스트가 없는 빈 틀이었던 HTML 파일에 검색해보니 이런 스크립트가 있네요 데이터의 저 두 숫자를 이용하는 간단한 코드네요. GP_OrgSeatCount 중 GP_SeatCount 의 비율로 High, Medium, Low를 ..
데이터가 어디 숨어있는지 찾았으니 불러봅시다. GetSessionList 이름도 딱 리스트를 요청하는 것처럼 생겼네요. 링크를 복사해서 브라우저로 들어가봅시다. ??? 아무런 화면이 나오지 않네요. 사용하는 방식이 POST네요 브라우저에 URL을 입력하고 엔터를 치는 것은 GET방식입니다. 쉽게 얘기하면 당겨야 할 문을 밀어서 열리지 않았다고 보면 됩니다. 함께 보내야할 정보도 잊지말고 잘 넣어줘야겠네요. Payload 기억하도록 하죠! POST방식 요청은 브라우저에서는 할 수 없으니! 다시 파이선 코드로 돌아옵시다. import requests url = "https://tickets.pyeongchang2018.com/Session/GetSessionList"; payload = { "Culture"..
그 많던 리스트가 다 어디로 도망간 것일까요? 입장권 리스트를 보여주던 화면을 다시 면밀히 살펴보죠. 이번에는 사용자의 눈이 아닌 개발자의 눈으로 봅시다. 저는 지금 Chrome 브라우저를 사용하고 있습니다. F12 키를 누르면 개발자 도구를 사용할 수 있습니다. 브라우저에 의해 샤샤샥 이쁘게 그려지기 전 상태를 볼 수 있네요. HTML 코드를 보는 것도 분석에 도움이 될 지 모르지만 그보다 먼저 Network 정보를 먼저 보고 싶네요. Network의 눈을 통하면 어떤 자원들(HTML, 이미지, 자바스크립트 등등)이 브라우저에 도착하고 떠났는지를 확인할 수 있습니다. F5 키를 눌러 새로고침을 해보았습니다. 그 짧은 사이에 정말 많은 정보가 오는 모양이네요. 뭔가 엄청 많은데 대부분 리소스인 것 같네요..
평창 올림픽 공식 사이트의 입장권 검색 서비스도 매우 훌륭합니다. 조금만 검색해본다면, 충분히 원하는 입장권을 찾을 수 있을 것입니다. 하지만 저는 귀찮으니까 컴퓨터에게 시키도록 하겠습니다. Python 2.7.14 를 사용할 예정입니다. Sublime Text 3를 이용해서 개발할 예정입니다. 다운로드, 설치, 환경설정은 일단 넘어가도록 하겠습니다. 1. PyeongChangProject 폴더를 만든다. 2. PyeongChang이라는 가상환경을 만든다. 3. 가상환경을 활성화 시킨다. 4. 필요한 라이브러리를 설치한다. 설치한 라이브러리는 Requests라는 라이브러리입니다. HTTP 요청을 아주 간단한 코드로 구현할 수 있도록 하는 훌륭한 라이브러리입니다. (참고로 인터넷 페이지 보는게 HTTP 요..
2월 9일부터 25일까지 2018년 동계 올림픽이 평창에서 열립니다. 하계 동계 구분없이 보자면 88년 서울 올림픽 이후 30년만에 대한민국에서 열리는 올림픽이네요. 동계 올림픽으로는 대한민국에서 처음 열리는 것이니 꼭 한번 다녀오고 싶다는 생각이 들었습니다. (이번이 아니면 언제 올림픽을 대한민국에서 볼 수 있을까 싶기도 했습니다 ㅎㅎ) 구글에 '평창 올림픽'을 검색해보니 공식 사이트가 나오더군요. 아주 깔끔하고, 동계 올림픽에 걸맞게 하얀색과 파란색으로 디자인 되어 보기 아주 편했습니다. 아무래도 경기를 관람하기 위해서는 표를 구매해야 하니 입장권 페이지로 이동했습니다. 입장권 예매하기로 이동해야 할 것 같네요. 기간별, 장소별, 경기 분류, 키워드, 예약 가능, 메달 수여 등등 굉장히 상세한 필터를..
- Total
- Today
- Yesterday
- markdown
- Polymorphism
- player
- 동계
- abstraction
- 파이선
- Encapsulation
- readme.md
- 객체지향
- 캡슐화
- Class
- 크롤링
- ContentResolver
- 입장권
- 평창
- ubuntu
- 리눅스
- media
- Multimedia
- 마크다운
- OOP
- Android
- Object Oriented Programming
- Linux
- 다형성
- 올림픽
- 우분투
- 클래스
- 추상화
- Video
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |