# 새로운 Activity 학습
# 데이터 타입별 변수 초기화 시 Default 값
# DataTable 다루기
# Tab 주소가 바뀔 때마다 Attach Browser 액티비티 추가 필요
<목차>** 텍스트 추출하기 |
** 텍스트 추출하기
BeautifulSoup과 Selenium 라이브러리를 이용한
웹 크롤링, 웹 스크래핑을
UiPath를 통해 아주 쉽게 진행할 수 있다.
- 추출하고자 하는 데이터는 Get Text, Extract Structured Data 'Table' 등의 액티비티로 추출할 수 있다.
- 단, Extract Structured Data를 이용한 TableData의 경우
=> Output Data Table 액티비티를 이용하여 데이터 타입을 String으로 변환 가능하다.
- 추출한 데이터를 받은 변수, 정의한 변수는 한 곳에 모아 관리한다.
1. 네이버 증권 데이터 추출 [테이블 데이터]
(1) 스크래핑 시작
* 스크래핑을 진행할 때 접근하는 방법이 두 가지가 있다..
방법 1) UIPath의 리본메뉴 -> 스크래핑
방법 2) 웹 레코딩 -> 복사 -> 데이터스크래핑
=> 두 가지 방법 모두 Attach를 알아서 잘 잡아주므로 Attach Browser 액티비티는 따로 설정하지 않고 진행한다.
(2) 테이블 데이터 추출 여부 확인
레코딩의 경우, 데이터를 선택하면
자동적으로 테이블 데이터 여부를 인식한다.
(3) 데이터 추출 과정
* Logic
: 증권 데이터 테이블로 이동 -> Table 데이터 추출 -> TableData를 String 자료형으로 변환 -> Message Box에 출력
2. 브라우저 조작 - Navigate To 등
* UiPath의 Navigate To 액티비티를 이용해 여러 사이트를 돌아다니며 자동화 시스템을 구현할 수 있다.
* 또한 브라우저의 이전, 이후, 홈으로 이동 등의 기능까지 조작이 가능하다.
▲ 브라우저 조작과 관련된 다양한 Activity들이 있다. 그중, 가장 자주 쓰이는 것은 Navigate To이다.
* 주의할 점은, 위의 Activity들은 단독으로 쓰일 수 없고,
반드시 Attach Browser 등의 다른 Activity와 함께 쓰여야 한다.
3. 데이터 다운로드 - 파일위치, 파일명 설정
* 파일 다운로드 자동화 시, 파일의 이름과 경로를 임의로 설정할 수 있다.
* 이는 파일을 저장할 시 '원하는 저장 위치\파일이름. 확장자'로 파일 이름을 지정하면 된다.
4. 데이터 추출 관련 Issue
1) 원하는 구역이 Mouse :hover 상태여야 할 때
=> Recording 또는, Sequence를 구성할 때, 원하는 영역이 마우스를 올려놓은 상태에서만 보이는 경우가 있다.
=> 이 경우 각각 진행하는 방식에 따라 다른 방법을 쓰게 된다
- Recording을 이용한 방법 : F2를 눌러 Recording을 일시정지 후 메뉴바 영역을 보이도록 함
- Activity를 이용하는 방법 : F2를 눌러 모션 Recording 정지, 마우스 우클릭으로 해당 영역을 고정 [권장]
※ Recording은 원치 않는 모션 추가의 위험이 있으므로,
마우스 우클릭을 권장한다.
2) 콤보박스의 데이터 불러오기
=> Select Item 액티비티를 이용, 감춰진 콤보박스 내부의 데이터를 쉽게 가져올 수 있다.
*
5. 사용한 Activity 정리
1) Get Text: 텍스트를 String 타입으로 추출, 추출한 텍스트를 받아줄 변수를 할당해주어야 한다. (출력 - 값에서 정의)
2) Select Item : 콤보박스 내의 접혀 있는 데이터를 추출.
3) Extract Structured Data 'Table' : 테이블 데이터를 추출. DataTable 변수형으로 반환
==> 단, 'Extract데이터 테이블'이라는 변수명으로 반환,,, 공백 오류 방지 위해 변수명 수정 필요함!
4) 브라우저 조작 관련 - Close Tab, Go Back, Go Forward, Go Home, Navigate To [모두 단독으로 쓰일 수 없음!!]
5) Assign - 변수 정의, 할당 시 Default 값(또는 빈 값)을 지정해주어야 함.
* 변수의 자료형마다 초기값(빈 값)이 다르다.
<자료형에 따른 빈 값>
자료형 | Integer(정수) | String(문자) | DataTable | Array |
초기값(빈값) | 0 | "" 또는 Nothing | New System.Data.DataTable | {""} |
참고) GenericValue : 추출한 정보가 어떤 자료형으로 사용할지 확정되지 않았을 때 임시적 자료형
=> 테이블 데이터를 가져오기만 한 상태에서는 변수 데이터타입이 GenericValue 임.