NGMsoftware

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

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

    팁 앤 테크

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

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

    에디터 2부 - 웹크롤링 매크로 만들기

    페이지 정보

    본문

    안녕하세요. 엔지엠소프트웨어입니다. 웹크롤링 매크로 만들기 2부입니다^^ 이전 1부 내용을 먼저 학습하고 오셔야 이 내용을 이해할 수 있습니다. 1부 내용은 아래 링크를 클릭하세요.

    1부 - 웹크롤링 매크로 만들기 ]

     

    엔지엠 에디터를 실행하고, 이전에 만든 스크립트를 불러옵니다.

    4stF14Y.png

     

     

    KB차차차에서 검색 버튼을 클릭하는데까지 만들었는데요. 이제 첫번째 매물을 클릭해서 상세 정보를 보는 페이지로 이동하도록 할께요.

    CT9haUv.png

     

     

    사이트마다 클릭해야 할 엘리먼트(Element) 또는 노드(Node)의 위치는 다를 수 있습니다. 1부에서도 설명했듯이 개발자 도구를 실행하고, 클릭할 엘리먼트의 XPath를 복사해야 합니다. 웹 업무 자동화는 대부분 이런식으로 이루어집니다. 하지만, XPath로 처리할 수 없는 경우도 있고, 가져올 엘리먼트가 여러개라면 다른 방식으로 처리해야 합니다. 이번에는 매물이 목록형이기 때문에 모두 가져와서 순차적으로 처리하도록 구성해야합니다. 그래서, 아래 그림과 같이 요소 이름은 link, 요소 형식은 ClassName으로 설정하세요.

    DU21NOP.png

     

     

    잘 동작하는지 실행(Ctrl+Alt+F8) 해볼까요? 여러분들도 아래 동영상처럼 잘 동작했을겁니다.

    gwWVSmX.gif

     

     

    생각보다 그렇게 어렵거나 하지는 않죠? 사실, 몇가지 중요한 내용만 알면 누구나 웹크롤링 매크로를 만들 수 있습니다. 이런 노하우들을 알아내기 위해 많은 시간을 소비하게 되는데요. 엔지엠 매크로를 사용하면 이런 시행착오를 줄이고, 누구나 쉽고 빠르게 업무용 매크로를 제작할 수 있습니다. 이제 정말 중요한 내용이 나옵니다. 중고차 매물을 클릭하면 크롬 브라우저에 새로운 탭이 생기고, 페이지가 열리는걸 알 수 있습니다. ①매인 사이트에서 매물을 클릭하면 ②새로운 창에 표시합니다.

    mtRIpJj.png

     

     

    이 상태에서 아래 정보를 가져올 수 있을까요?

    cc4cRmU.png

     

     

    현재 상태로는 가져올 수 없습니다. 웹브라우저 제어는 항상 매인창 기준입니다. 하지만, 위 정보들은 새로 생성된 창에 존재합니다. 그렇기 때문에 제어할 창을 새로 생성된 창으로 변경해야 합니다. 제어할 창을 변경하려면 [ 브라우저 컨트롤 ] 액션을 사용합니다. 아래 그림과 같이 두번째 버튼 액션 아래에 추가하세요. 최초에 로딩된 매인에서 새창 또는 새탭으로 이동하려면 네비게이션을 SwitchTo로 변경해야 합니다. 말 그래도 제어할 창을 변경하겠다는 뜻입니다. 그러면, 어디로 변경할지 알려줘야겠죠? 아래 윈도우 선택 속성을 Last로 선택하세요.

    VBjp6Vp.png

     

     

    창 이동은 아래와 같이 다양하게 처리할 수 있습니다. 

    gE6gwN4.png

     

     

    이제 새로 생긴 탭으로 제어권이 이동되었으니 정보를 추출하기만 하면 됩니다. 정보 추출은 [ 텍스트 ] 액션을 사용하면 됩니다.

    OSRNUGV.png

     

     

    이 스크립트를 실행하면 매물로 등록된 중고차의 정보를 가져올 수 있습니다. 차량정보, 연식, 주행거리, 연료를 정상적으로 가져오죠? 이렇게 수집된 데이타를 변수에 각각 저장해주세요. 그리고, 엑셀 API를 사용해서 엑셀에 정리할 수 있습니다. 우선, 새로운 스크립트를 추가하세요. 수집된 데이타를 2차원 배열(콤마와 줄바꿈으로 구분되는...)로 만들어서 엑셀로 저장하는 방법입니다. 우선, 에디터를 실행하고 새로운 스크립트를 하나 추가 해줍니다.

    aIdzK2H.png

     

     

    새로운 파일을 생성해야 하기 때문에 CMD를 이용해야 합니다. 만약, 이미 만들어진 csv 파일이 있다면 이 부분은 건너뛰어도 됩니다.

    1. 도구 상자의 윈도우 > [ 커멘드 ]를 추가해줍니다.
    2. 윈도우 생성 안함 옵션을 True로 설정하세요.
    3. 프로세스 이름은 cmd입니다.
    4. 파일이 생성될 위치와 파일 이름을 설정합니다. 
      /c copy con "C:\Users\<사용자 계정>\Desktop\test.csv"

    iwJDo45.png

     

     

    만약 동일한 이름의 파일이 이미 존재하면 이 액션은 아무것도 수행하지 않게 됩니다. 그렇기 때문에 생성할 위치에 동일한 이름의 파일이 있는지 체크하지 않아도 됩니다. 만약, 무조건 새로운 파일을 생성해야 한다면 파일 제어의 삭제 옵션을 이용하면 됩니다. 이제 CSV 파일 액션을 추가한 후 아래와 같이 속성을 설정하세요.

    1. CSV 파일이 없으면 경로를 직접 입력해도 됩니다. 파일이 있으면 선택하세요.
    2. 저장은 True로 변경하세요.
    3. 텍스트 쓰기에 콤마와 줄바꿈으로 된 문자열을 입력해줍니다.

    mPPpGvu.png

     

     

    위 3번의 내용은 아래와 같습니다.

    e8cDDPt.png

     

     

    스크립트를 실행하고, 바탕화면에 생성된 csv 파일을 열어보세요.

    arIwKqX.png

     

     

    좀 더 간단하게 파일 제어 액션을 이용해도 됩니다. 아래 그림과 같이 파일 제어 액션을 추가하세요.

    1. 도구 상자의 윈도우에 파일 제어 액션을 추가하세요.
    2. 파일 제어는 Create(생성)입니다.
    3. 파일 제어 옵션이 Create이므로 파일 생성 속성에서 새 파일을 설정합니다.
    4. 새로운 파일에 쓸 내용을 입력하세요.

    c34TBXj.png

     

     

    위 4번의 파일 내용은 아래와 같습니다.

    zIzjQ9c.png

     

     

    바탕화면에 생성된 csv 파일을 열어보세요.

    fVK9Vpt.png

     

     

    csv 파일은 콤마와 줄바꿈으로된 2차원 배열을 처리하는 파일 포멧입니다. 2차원의 구조이기 때문에 엑셀과 호환이되고, 동일하게 사용할 수 있습니다. 물론, [ 엑셀 API ]를 사용해서 열과 행의 갯수만큼 [ 문자열 분리 ]로 [ 반복 ]하면서 각각의 셀에 값을 입력해도 됩니다. 이렇게해서 간단하지만 웹크롤링 매크로를 만들어봤습니다. 실제 업무에 적용하려면 디테일하게 다듬어야 하겠지만~ 여기서 어떻게 활용하는지는 잘 모르기 때문에 이정도까지만 알려드릴 수 있을거 같습니다. 보통 쇼핑몰을 운영하시는 분들이 검색 키워드나 데이타를 분석해서, 상품이 잘 판매될 수 있도록 하는데 사용합니다. 이외에도 많은 곳에서 크롤링을 이용하고 있으니 이번 기회에 도전 해보세요^^

     

    개발자에게 후원하기

    MGtdv7r.png

     

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

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

    감사합니다~

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

    댓글목록

    등록된 댓글이 없습니다.