6. 웹 로봇 만들기
웹 로봇은 웹 페이지 수집하는 핵심 엔진입니다. 아키텍쳐링 단계에서 약속한 작업을 토대로 웹 로봇을 만들어 봅시다.
웹 로봇을 만드는 과정은 웹 로봇을 구성할 클래스를 조사하는 것부터 시작할게요. 그리고 조사한 클래스 간의 관계를 정의한 후에 구현할게요.
그리고 웹 로봇을 서비스 형태로 만들기로 했는데 이 책에서는 라이브러리로 만들어서 사용할게요. 그리고 이번 장에서는 웹 로봇 라이브러리를 만들기 전에 웹 로봇 예광탄의 화면 구성을 한 후에 라이브러리에 필요한 형식을 정의하고 이를 이용한 예광탄을 작성할게요.
6. 1 웹 로봇 예광탄 만들기
먼저 웹 로봇 예광탄을 윈도우즈 Forms 응용 프로그램으로 작성합시다. 예광탄에서는 다음의 기능을 가능하게 작성해 봅시다.
웹 로봇의 수집을 가동하거나 멈추게 하는 기능을 요구합니다.
수집 주기를 설정할 수 있고 Seed 사이트를 추가할 수 있어야 합니다.
수집해야 할 대상 사이트 목록을 조회할 수 있어야 합니다.
수집한 웹 페이지 목록을 확인할 수 있어야 합니다.
수집한 웹 페이지의 상세 정보를 확인할 수 있어야 합니다.
[그림 6.1] 웹 로봇 예광탄 메인 폼 컨트롤 배치
번호 |
컨트롤 이름 |
컨트롤 유형 |
설명 |
1 |
btn_start_collect |
Button |
수집 가동 버튼 |
2 |
btn_stop_collect |
Button |
수집 멈춤 버튼 |
3 |
lb_period_info |
Label |
정보 표시 |
4 |
tbox_period |
TextBox |
수집 주기 입력 창 |
5 |
btn_set_period |
Button |
수집 주기 설정 버튼 |
6 |
lb_seed_info |
Label |
정보 표시 |
7 |
tbox_seed |
TextBox |
Seed 사이트 입력 창 |
8 |
btn_add_seed |
Button |
Seed 사이트 추가 버튼 |
9 |
lb_purllist_info |
Label |
정보 표시 |
10 |
lbox_purl |
ListBox |
수집한 웹 사이트 목록 |
11 |
lb_candilist_info |
Label |
정보 표시 |
12 |
lview_candidate |
ListView |
수집 대상 사이트 목록 |
13 |
ch_url |
ColumnHeader |
컬럼 헤더(페이지 주소) |
14 |
ch_depth |
ColumnHeader |
컬럼 헤더(상대적 깊이) |
15 |
gbox_purl |
GroupBox |
그룹 박스 |
16 |
lb_title_info |
Label |
정보 표시 |
17 |
lb_title |
Label |
웹 페이지 타이틀 |
18 |
lb_cp_info |
Label |
정보 표시 |
19 |
lb_cp_addr |
Label |
웹 페이지 주소 |
20 |
lb_ocp_info |
Label |
정보 표시 |
21 |
lb_ocp_addr |
Label |
요청 웹 페이지 주소 |
22 |
lb_depth_info |
Label |
정보 표시 |
23 |
lb_depth |
Label |
상대적 깊이 |
24 |
lb_date_info |
Label |
정보 표시 |
25 |
lb_date |
Label |
수집 일시 |
26 |
lb_content_info |
Label |
정보 표시 |
27 |
tbox_content |
TextBox |
수집한 웹 페이지 내용 |
[표 6.1] 웹 로봇 메인 폼의 자식 컨트롤
'프로그래밍 기술 > 웹 검색 엔진 만들기' 카테고리의 다른 글
6.2.4 RawPostedPage 구현 (0) | 2017.12.07 |
---|---|
6.2.3 RawUrl 구현 (0) | 2017.12.07 |
6.2.2 WebPageGetter 구현 (0) | 2017.12.07 |
6.2.1 WebCollect 구현 (0) | 2017.12.07 |
6. 2 웹 로봇 설계 및 구현 (0) | 2017.12.07 |
5. 4 DBM ForSearch 구현 (0) | 2017.12.07 |
5. 3 DBM ForSearch에 필요한 저장 프로시저 구현 (0) | 2017.12.07 |
5.2.2 DBM ForAll 라이브러리 만들기 (0) | 2017.12.06 |
5. 2 DBM ForAll 구현 (0) | 2017.12.06 |
5.1.19 AddInvertedItem 저장 프로시저 (0) | 2017.12.06 |