Download - 웹표준과 자동화의 약속된 승리
웹페이지 처리 자동화 하기
● Selenium
● Greesemonkey
● Chrome Extensions
● Phantomjs
아예 웹 브라우져를 (재빨리) 만들어버리자
● 새로운 기술을 바닥부터 배우기엔 시간이 없
다.
● 기존의 웹 브라우져(의 sandbox)에서 제공하
는 기능만으로는 뭔가 부족하다.
● 그리고 쓰기 쉬운 python을 이용하자!!!
Webkit
● 대부분의 모바일 브라우져에서 쓰이는 웹 렌
더러 엔진
● 웹 브라우져에서 제공되는 기능 대부분이 사
용 가능
GObject Introspection
● GObject/Gtk 에서 사용되는 language
binding middleware○ 여기에 있는 대부분의 API를 지원
● Python을 아주 잘 지원합니다.
● 더 자세히 알고 싶으면 예전 발표자료 나 제목
의 링크를 참조하세요.
GObject Introspection의 단점.
● Documentation이 부실합니다..(..)○ 바인딩을 위한 middleware 만 제공
○ api 형태는 짬으로 헤쳐나가야 함.
■ webkit-gtk C reference 참조
■ 그런데 dom쪽은 reference조차 없음● js dom api를 참조
구현할 것
● 특정 페이지를 열면 특정 메소드 수행○ 로그인 페이지 열면
■ 인증정보 넣고 확인버튼 찾아서 click○ 극장선택 페이지 열면
■ 원하는 극장/상영관 찾아서 click○ 결재 페이지 열면
■ 카드 번호와 개인정보 입력후 확인버튼 찾아서 click
● 골든박스 찾아보기○ 가운데 자리와의 거리를 얻어온 다음, 정렬해서 첫번째 자리를 얻어옴
개발하기 위해 필요한 것
● 특정 페이지 열기○ load_uri() 메소드 제공
● 웹 브라우져의 이벤트○ load-status 라는 property 제공
● DOM○ get_dom_document() 메소드 제공○ DOM api는 c reference 문서조차 없음.
■ 쉘에서 하나하나 찾아봐야;;■ CamelCase vs under_scores
● 특정 js 코드 실행하기○ execute_script() 메소드 제공
덤으로 몇 가지 최적화
● dns prefetch○ hostname이 하나밖에 안쓰여서, 그렇게 큰 효과는 없음.
● 이미지 로딩하지 않기● 그외 설정할 수 있는 여러가지 값
한층 더 열악해진 상황
● 단 하루, 달랑 2회 상영○ 수요에 비해 공급이 너무 적음
● 덕들 중에 나처럼 생각하는 사람이 있을텐
데...
● 메가박스 페이지는 처리하기 귀찮..○ cgv는 한땀한땀 div id로 잘 감싸져있는데..
○ megabox는 ...
그 외 여러 응용 방법?
● iPhone 도입 후 웹 어플리케이션(특히 모바일
용)으로 할 수 있는 것이 점점 늘어나고 있음○ 디아블로 한정판 온라인 구매
○ 구글 IO 참가 신청
얼렁뚱땅 결론
● 한번에 잘되는거 없다.○ 테스트. 테스트. 그리고 또 테스트
● 기술적 접근도 중요하지만, 도메인 지식 또한
상당히 중요하다.
● 프로그래머의 가치를 올려주는 것은 자동화.
http://github.com/ganadist/cgv_reservation
Implementation