NGMsoftware

NGMsoftware
로그인 회원가입
  • 매뉴얼
  • 팁 앤 테크
  • 매뉴얼

    팁과 테크니컬 노하우를 확인하세요.

    팁 앤 테크

    팁과 테크니컬 노하우를 확인하세요.

    본 사이트의 컨텐츠는 저작권법의 보호를 받으므로 무단 복사, 게재, 배포 등을 금합니다.

    에디터 캠핑 예약 빈자리 알림 매크로 만들기. (스크래핑, 크롤링)

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 이 예제는 캠핑장 예약하는건 아니구요. 단순히 특정 날짜에 빈자리가 있는지 알림을 주는 매크로 예제입니다. 크게 복잡하거나 어렵지는 않지만~ 일반적인 윈도우 매크로와 웹 API는 사용법이 많이 달라서 관련 내용들을 익혀두시면 웹 관련 업무에 유용하게 사용하실 수 있을거예요^^

     

    예전에 지나가면서 본 금은모래 캠핑장을 예로 들어볼께요. 이외에도 백패커들이 많이 찾는 노을캠핑장이나 호명산 잣나무숲 캠핑장등등... 조금만 응용하면 다른 캠핑장들도 알림을 받아볼 수 있을겁니다. 저는 텐트나 캠핑 장비가 없기 때문에 숙박을하진 않고 주로, 저녁때까지만 놀다가 귀가하는 편입니다. 여유가 되면 주변 모텔을 검색해서 하루 자고 가기도 합니다. 아무튼, 금은모래 캠핑장 예약 사이트는 아래와 같이 생겼습니다.

    XahO5eI.png

     

     

    예약 사이트를 보면 아시겠지만, 회색으로 된 구역은 예약이 불가능합니다. 주말에는 100프로 예약이 되어 있네요. 주로 주말에만 캠핑을 다시는 분들이라면... 누군가가 취소하거나 빈자리가 나올 때 알림을 받으면 좋을겁니다. HTML 구조를 보면 날짜별로 DIV안에 DL 목록으로 구역 정보가 있다는걸 확인할 수 있습니다. 여기서 DL 태그의 클래스를 보면 soldout이라는 정보가 있는데요. 이걸 이용하면 캠핑 예약 날짜에 빈자리가 있는지 확인할 수 있을겁니다.

    iPikAPB.png

     

     

    엔지엠 에디터를 실행하고, 새로운 스크립트를 하나 추가 해줍니다.

    cnOuw3h.gif

     

     

    [ 웹 API의 연결 ] 액션을 추가한 후 웹 드라이버를 선택하고, 사이트 주소를 입력하세요.

    GBnPTwD.png

     

     

    스크립트의 가장 위에 있는 변수는 캠핑 예약 날짜별 항목을 저장합니다. 예를 들어서 2022년 10월 26일날 예약 가능한 사이트가 있는지 확인하기 위해 변수가 필요합니다.

    qkrvYXP.png

     

     

    예약을 확인하기 위해 XPath에 2022년 10월 26일 정보를 입력 해줍니다. XPath는 크롬의 개발자 도구(F12)에서 날짜를 선택하면 확인할 수 있습니다.

    KnWab1U.png

     

     

    찾아온 엘리먼트 정보를 변수에 저장하고, 마지막 엘리먼트에서 대여존이 아닌게 있는지 체크할 수 있습니다.

    XoYv2fv.png

     

     

    구조를 분석해보니 td 값만 가져오면 될거 같습니다. 이 값이 0이 아니면 예약 가능한 사이트가 있다는 뜻이거든요. 예약이 가능한 날과 예약이 불가능한 날의 값들을 비교 해보세요. 예약이 불가능한 사이트는 0이고, 나머지는 사이트 위치에 따라 값이 0보다 큽니다. 아마 사이트 고유 번호인듯한데... 이걸 이용하는게 더 편리할거 같군요^^;

    2ZQJU6O.png

     

     

    아래 그림과 같이 td 정보만 가져와서 배열로 만들었습니다.

    szs2pxt.png

     

     

    이 배열을 순차적으로 돌면서 0보다 큰 값이 있는지 판단하면 될거 같습니다. 그러면, 해당 날짜에 예약이 가능한지 쉽게 알 수 있겠죠? 참고로, 사용자로부터 날짜 정보를 받아서 동적으로 처리하려면 아래와 같이 [ 입력 메세지 박스 ]를 사용할 수 있습니다.

    eMkcXWD.png

     

     

    [ 날짜 시간 메세지 박스 ]를 사용하면 더 쉽게 처리할 수 있습니다.

    opQG6Rt.png

     

     

    물론, For 반복이나 Foreach 반복 액션을 사용해서 1일부터 30일까지 순차적으로 체크할수도 있습니다. 원하는 방식으로 처리할 수 있도록 액션들이 준비되어 있으니까요. 마지막으로 텔레그램이나 카카오톡으로 0보다 큰 값이 있으면 알림을 보낼 수 있습니다.  이와 관련된 예제들도 팁 앤 테크 게시판에 있으니 참고해 보시면 좋을거 같아요. 업무 자동화 RPA 매크로를 제작하는데 어려움이 있으시면 [ 고객 서비스 ]방에 문의 해주세요^^

    [ 매크로 제작 및 견적 요청 ]

     

    개발자에게 후원하기

    MGtdv7r.png

     

    추천, 구독, 홍보 꼭~ 부탁드립니다.

    여러분의 후원이 빠른 귀농을 가능하게 해줍니다~ 답답한 도시를 벗어나 귀농하고 싶은 개발자~

    감사합니다~

     

    • 네이버 공유하기
    • 페이스북 공유하기
    • 트위터 공유하기
    • 카카오스토리 공유하기
    추천0 비추천0

    첨부파일

    댓글목록

    profile_image

    이이제이이님의 댓글

    no_profile 이이제이이 쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 작성일 Date

    selenium으로 직접 하나하나 코딩하는데 그 방식보다 훨 편해보이네요 고생 많으셨습니다.