• 페이지 로딩 방법 업그레이드 하기

 

  • Autoit 편집기를 실행 후 도움말을 사용하기 위해 저장된 파일에서 [ F1 ] 키를 누르세요.  ( 저장 된 페이지에서만 도움말이 표시 됩니다. )

 

  • 도움말이 표시되면 좌측에 [내용] 항목을 선택 후 _LoadWait 를 선택합니다. 그럼 우측에 세부 내용이 표시됩니다.

"IE 페이지 이동하기#1 - 기본편" 에서는 페이지 대기를 Sleep(5000) 넣었지만 자동화를 개발하는 과정에서 페이지 이동 시 웹 로딩이 5초이상 걸리게 되면 그 이후 동작은 오류가 발생할 가능성이 생기게 됩니다. 안정성을 위해 이번에는 _IELoadWait로 변경해 보도록 하겠습니다.  _IELoadWait는 해당 페이지의 로딩이 완료되는 것을 기다려주는 명령어 입니다. 만약 페이지 로딩이 끝나는지여부를 눈으로 확인이 필요하다면 Sleep를 추가하는 것도 좋은 방법입니다. 그럼 로딩이 완료 된 후 Sleep만큼 눈으로 확인 가능한 시간이 제공됩니다. 

 

#include <IE.au3>

Local $oIE = _IECreate("https://www.naver.com/")
_IELoadWait($oIE)
_IENavigate($oIE, "https://www.daum.net/")
_IELoadWait($oIE)
_IENavigate($oIE, "https://www.nate.com/")

 

 

  • 위처럼 코드를 변경하게 되면 페이지 로딩이 끝나면 다음 페이지로 순차적으로 이동되는 것을 확인 할 수 있습니다.

 


  • 웹 페이지 이동 시 내용 확인하기

 

  • RPA 자동화를 위해 페이지를 이동하는 이유는 페이지를 활용하기 위해서일 것 입니다. 페이지를 읽어오는 방법은 여러가지가 있지만 이번에는 가장 원시적이면서 확실한 방법 중 하나를 이용해볼 예정입니다. 도움말에서 _IEDocReadHTML 을 선택하여주세요.

  • _IEDocReadHTML 하단에 보시면 Example 가 있습니다. 중간에 2줄을 선택하여 복사 후 각 _IELoadWait 하단에 붙여넣어주세요

 

 

#include <IE.au3>

Local $oIE = _IECreate("https://www.naver.com/")
_IELoadWait($oIE)
Local $sHTML = _IEDocReadHTML($oIE)
MsgBox($MB_SYSTEMMODAL, "Document Source", $sHTML)

_IENavigate($oIE, "https://www.daum.net/")
_IELoadWait($oIE)
Local $sHTML = _IEDocReadHTML($oIE)
MsgBox($MB_SYSTEMMODAL, "Document Source", $sHTML)

_IENavigate($oIE, "https://www.nate.com/")
_IELoadWait($oIE)
Local $sHTML = _IEDocReadHTML($oIE)
MsgBox($MB_SYSTEMMODAL, "Document Source", $sHTML)

 

 

  • 다음 코드를 실행할 경우 페이지가 로딩이 완료되면 html 내용이 대화상자로 나타나게 됩니다.  동작 화면은 다음과 같습니다.

 

 

위에 생성 된 AU3 파일은 하단에 첨부 하였습니다.

IE_이동하기_2.au3
0.00MB

  • 이번에는 Uipath를 이용하여 Word ( .doc )문서를 PDF 로 변환하는 작업을 진행해볼 예정입니다.
  • 먼저 동작 전에 Docx 문서를 생성하여 저장합니다. 이번에는 간단한 글자만 입력하였으나, 이미지등이 포함되어 있어도 됩니다.

 

  • Uipath를 실행합니다. 

  • 우측상단의 프로세스를 선택합니다.

  • 나타난 새 빈 프로세스 대화상자를 확인 후 만들기를 선택합니다.

  • [ 디자인 ] > [ 새로 만들기 ] > [ 플로우차트 ] 를 선택합니다.

  • 플로우 차트 대화상자에서 만들기를 선택하면 가운데 화면에 플로우 차트가 나타납니다. 

  • 패키지를 추가하여 MS Word를 실행하기 위한 준비를 시작합니다. [ 디자인 ] > [ 패키지 관리 ]를 선택합니다.

  • 패키지 관리 창이 나타나면 좌측에 [ 모든 패키지 ] > [ 공식 ] 을 선택한 후 "Word"를 검색합니다. 검색 후 나온 항목 중 UiPath.Word.Activities 를 선택하여 설치를 진행합니다.

 

  • word 관련 패키지가 설치되었으므로 좌측하단에 액티비티를 선택 후 검색창에 word로 검색합니다.

  • 좌측 액티비티 창에서 Word Application Scope를 더블클릭하면 가운데 화면에 해당 항목이 추가 됩니다. 해당 항목이 추가 되면 선을 연결해 줍니다.

  • Word Application Scope 를 더블클릭하여 내부로 진입하면 문서 경로를 입력하는 창이 보입니다. 해당 경로에 이미 생성해둔 파일 정보를 입력 합니다.

 

  • 좌측 액티비티 창에서 Export To PDF를 마우스로 드래그 하여 실행에 놓습니다. 

  • 정상적으로 동작하였다면 "다른 이름으로 저장할 파일 경로"를 입력받는 입력창이 나타납니다. 임의의 PDF 파일명을 입력합니다.

 

  • 이제 정상적인 동작을 하는지 확인을 위해 [ 디자인 ] > [ 파일 디버그 ] 를 선택합니다.

  • 지정한 경로에 PDF 파일이 생성 되었는지 확인을 진행합니다.

  • 이번에는 IE를 활용하여 페이지 이동을 진행해볼 예정입니다.
  • Autoit 편집기를 실행합니다.
    • 빠르게 실행하는 방법 중 하나는 윈도우 검색에서 "scite" 로 검색 후 실행 합니다.

 

  • Autoit의 도움말을 사용하기 위해서는 저장된 파일에서 [ F1 ] 키를 누르면 됩니다.  먼저 빈 문서를 생성 후 저장합니다. 그 후 커서를 편집기 안에 둔 상태에서 [ F1 ] 키를 누릅니다.

 

 

  • 도움말이 표시되면 좌측에 [내용] 항목을 선택 후 _IENavigate 를 선택합니다. 그럼 우측에 _IENavigate 가 표시됩니다.

 

  • 우측의 스크롤을 내리다보면 Example1이 보이면 우측위의 Copy to clipboard를 클릭하여 내용을 복사합니다. 

; Create a browser window and navigate to a website,
; wait 5 seconds and navigate to another
; wait 5 seconds and navigate to another

#include <IE.au3>

Local $oIE = _IECreate("www.autoitscript.com")
Sleep(5000)
_IENavigate($oIE, "http://www.autoitscript.com/forum/index.php?")
Sleep(5000)
_IENavigate($oIE, "http://www.autoitscript.com/forum/index.php?showforum=9")

 

 

  • 복사 된 내용을 편집기의 빈 문서에 붙여 넣습니다.

 

 

  • 디버그 실행은 [ F5 ] 키입니다.  상단메뉴의 [ Tools ] > [ Go ] 키를 누르거나 [ F5 ] 키를 눌러주세요.

 

  • 그러면 IE가 실행되며 최초 실행 페이지가 표시 된 후 5초 단위로 페이지가 변경 됩니다.

 

  • 페이지를 네이버, 다음, 네이트 순으로 이동되도록 수정할 예정입니다. 각각의 사이트에서 접속 주소를 복사하여 순서대로 붙여 넣습니다.
#include <IE.au3>

Local $oIE = _IECreate("https://www.naver.com/")
Sleep(5000)
_IENavigate($oIE, "https://www.daum.net/")
Sleep(5000)
_IENavigate($oIE, "https://www.nate.com/")
  • 변경 된 사이트정보를 기준으로 접속이 순차적으로 진행 됩니다.

  • 메세지 박스에 변화되는 값 추가하기
  • 먼저 메세지 박스에 스크립트 줄 수를 넣어보도록 하겠습니다. Autoit에서 제공하는 현재 스크립트의 줄 수를 알수 있는 명령어는 @ScriptLineNumber 입니다. 이것을 응용해서 대화상자의 Message 에 넣어보도록 하겠습니다. 이것을 이용하여 동작테스트 과정에서 문제 없이 진행 된 항목 까지를 확인이 가능합니다.
#include <MsgBoxConstants.au3>

MsgBox( 16384 , "Title", @ScriptLineNumber )

 

  • 메세지 박스의 버튼 선택에 따른 처리작업 추가하기
    • 메세지 박스의 버튼 선택에 따른 값 확인하기를 추가하여 좀더 사용자 친화적인 프로그램을 제작할 수 있습니다. 선택에 따른 번호는 메세지 박스를 추가하여 간단히 확인 가능합니다.
#include <MsgBoxConstants.au3>

Local $Select_Button_Num = MsgBox( 2 , "Title", "Text" )
MsgBox("","[ 선택 버튼 번호 ]", $Select_Button_Num )
  • 리턴 값은 하단 이미지에 표시 하였습니다. 값을 계속 외우고 있기는 어렵기 때문에 메세지 박스 사용시에는 리턴 값 확인을 빠르게 진행하는 방법을 진행해 보도록 하겠습니다.

 

  • 해당 값을 받아서 IF 문을 사용하여 각각 다른 동작을 분기하여 진행해 보도록 하겠습니다.
#include <MsgBoxConstants.au3>

Local $Select_Button_Num = MsgBox( 2 , "Title", "Text" )
if $Select_Button_Num = 3 Then
	MsgBox("","[ 선택 버튼 동작 ]", "[중단] 버튼을 선택하였습니다." )
ElseIf $Select_Button_Num = 4 Then
	MsgBox("","[ 선택 버튼 동작 ]", "[다시 시도] 버튼을 선택하였습니다." )
ElseIf $Select_Button_Num = 5 Then
	MsgBox("","[ 선택 버튼 동작 ]", "[무시] 버튼을 선택하였습니다." )
EndIf
  • 동작 화면은 다음과 같습니다.

 

메세지 박스는 가장 쉽게 사용가능한 표시 방법 중 하나입니다.  프로그램 사용자에게 정보를 전달 할수도 있으며, 오류를 탐지하는데 사용하거나 사용자의 선택을 결정 할수 있도록 도움을 줄 수 있습니다.

  • 첫 번째 값은 대화상자의 상태를 변경시켜 줍니다. 기본적으로 제공되는 Autoit 도움말에 관련한 설명은다음과 같으며,  아래 이미지를 참고하여 상황에 맞게 사용하시면 됩니다. 

  • 항목 번호 별 동작 결과

 

 

 

  • 두 번째 값은 대화상자의 제목 입니다.

 

  • 세 번째 값은 대화상자의 본문 입니다.

  • 네 번째 값은 시간입니다. 만약 해당 값을 설정하면 대화상자가 그 시간만큼 표시 된 후 자동으로 사라집니다. 아래 이미지는 3초로 설정되어 있으므로 버튼을 선택하지 않아도 대화상자가 3초만 유지 된 후 사라지는 것을 확인 할 수 있습니다.

  • 대화상자의 부모 핸들을 설정 할 수 있습니다.. 만.. 쓸일은 자주 없을 것 같습니다. 
  • Autoit에서 제공하는 날짜 시간함수는 도움말에서 확인 가능합니다. 결과 확인을 가장 쉽게 하는 방법중 하나인 대화상자를 이용하여 표기해보도록 하겠습니다.

 

  • Autoit 편집기를 실행 후 [ File ] > [ New ] 하여 빈 문서를 생성하여 저장 후 [ F1 ] 키를 누르세요. 도움말이 표시되면 좌측에 [ 색인 ] 항목 탭을 선택 후 @YEAR 로 검색합니다. 처음 표시되는 @YEAR을 클릭하면 우측에 날짜 시간 관련 함수들이 표시됩니다.

 

  • 현재 날짜와 시간을 표시하는데 사용 할 값은 다음과 같습니다.
    • @Year : (올해) 연도를 나타냅니다.
    • @MON : 월을 나타냅니다.
    • @MDAY : 일을 나타냅니다.
    • @HOUR : 현재 시간을 나타냅니다.
    • @MIN : 현재 분을 나타냅니다.
    • @SEC : 현재 초를 나타냅니다.

 

  • 위에 명시 된 값들을 대화상자에 현재 날짜와 시간 순차적으로 표시해 보려고 합니다.  중간에 값을 구분하기 위해 _ 값을 추가 하였습니다.
MsgBox("","Time", @YEAR &"년 "& @MON &"월 "& @MDAY &"일 "& @HOUR  &"시 "& @MIN  &"분 "& @SEC& "초" )

 

  • 동작 화면

 

 

 

  • Web에서 원하는 자료를 별도의 파일로 저장하는 방법에 대하여 소개하려 합니다. 이번 예제에서는 온라인 구매 사이트인 옥션에서 아이패드의 관련 제목과 링크 그리고 가격을 뽑아 CSV 파일로 정리하는 방법에 대하여 알아보고자 합니다.
  • 검색용 자료 설정 작업 진행
  • IE를 실행하여 옥션 사이트에 접속합니다.

  • "아이패드"로 검색 후 상세 정보에 태블릿 선택 후 애플을 선택합니다. 해당 웹페이지는 잠시 최소화하여둡니다.   

 

  • UiPath에서 web Scraping 하기
  • UIpath Studio를 실행합니다.

  • Process를 클릭합니다.

  • Name은 web_scraping_test로 설정 후 Create 합니다.

  • 이번엔 Sequence로 작업을 진행하므로 Ctrl + N (New Sequence)를 선택합니다.

  • Name은 web으로 변경합니다.

 

  • 화면 가운데 Web Sequence가 생성된 것이 확인되면 상단 리본 메뉴의 Data Scraping 버튼을 선택합니다. 

  • Extract Wizard 대화상자가 나타나면 기존에 설정한 IE 페이지를 띄운 후 Next를 선택합니다.

  • Next 버튼을 누른 후 대화상자는 사라지며, 마우스 움직임에 따라 추출 가능 데이터에 표시가 나타납니다. 이 작업은 내가 추출하고자 하는 데이터의 패턴과 위치를 확인하는 과정이며, 순차적으로 2개의 제목을 선택하여 제목값들을 리스트화 할 수 있게 해주는 작업입니다.

  • 첫 번째 제목을 선택하고 클릭 후 다시 대화상자가 나타다면 Next 버튼을 선택합니다.

  • 두 번째 제목을 선택합니다.

 

  • Configure Columns 대화상자가 나타나면 Column3 값만 Price로 변경 후 Next를 선택합니다. 이미 제목을 추출하며 URL을 추출하였으므로 추가적으로 URL 체크박스는 체크하지 않았습니다.

 

  • Extract Wizard 대화상자가 나타나며 기존 정보에 가격이 추가되어 나타나는 것을 확인 할 수 있습니다.

  • 한 페이지만 검색해서는 301개의 데이터를 추출 할 수 없음으로 다음 페이지로 넘어 갈 수 있는 작업이 필요합니다. Finish를 선택하면 Indicate Next Link 대화상자가 나타나며 다음 페이지로 넘어갈 것인지 확인하는데 Yes를 선택하기전에  IE 창에서 스크롤을 가장 아래로 내려 Next 버튼이 보이도록 설정하면됩니다.

  • 대화상자에서 Yes를 하여 화상자가 사라지길 기다립니다.

  • Web화면에 다음을 의미하는  Next 버튼을 선택합니다.

 

 

 

  • 추출된 Data 정보 CSV로 저장하기
  • 화면 좌측 Activities의 Search 창에서 CSV로 검색합니다.

 

 

  • Write CSV를 더블클릭하면 화면에 추가된 것이 확인할 수 있습니다.

  • FilePath 정보는 바탕화면에 csv확장자 로 설정하여 저장합니다.

  • Data table 선택 후 영어 e를 입력하면 ExtractDataTable 값이 나타납니다. 해당 값을 선택합니다.

 

  • 동작 확인
  • F5 (Run) 버튼을 선택합니다.

 

  • IE 화면이 변화되는 것을 보며 대기 합니다.
  • UiPath 화면이 다시 나타난 후 바탕화면을 확인하면  csv  파일이 생성된 것을 확인할 수 있습니다.

  • Csv 파일을 열어서 내용을 확인하면 데이터가 추출된 것을 확인할 수 있습니다.
     

 

 

 

 

+ Recent posts