|
|
||
|---|---|---|
| _스크립트 | ||
| 작업파일 | ||
| 참고파일 | ||
| _avg_result.txt | ||
| _김제_E셸삭제.py | ||
| _김제_인페이지탭수.py | ||
| _김제_재분류.py | ||
| _김제_정리.py | ||
| _김제_확장.py | ||
| .gitignore | ||
| .owncloudsync.log | ||
| .owncloudsync.log.1 | ||
| .sync_journal.db | ||
| .sync_journal.db-shm | ||
| .sync_journal.db-wal | ||
| 2단계 안내사항.txt | ||
| buyeo_rows.json | ||
| buyeo_tabs.json | ||
| cbe_tree.json | ||
| cne_tree.json | ||
| Desktop.ini | ||
| gc_bokji2.json | ||
| gc_bokji.json | ||
| gc_final_rows.json | ||
| gc_rows_final.json | ||
| jje_tree.json | ||
| komsco_수집kit_2026-06-19.zip | ||
| korail_gnb2.json | ||
| korail_gnb.json | ||
| kpx_gnb.json | ||
| muju_gnb.json | ||
| muju_sitemap_tree.json | ||
| probe14.txt | ||
| README.md | ||
| Superpowers_사용법.md | ||
| wj_tree.json | ||
| 공공저작물_수집_열별작성가이드.pdf | ||
| 기관리스트.xlsx | ||
| 사이트맵_수집_매뉴얼.md | ||
| 사이트맵_수집_매뉴얼.pdf | ||
| 자료_취합_예시.xlsx | ||
공공저작물 실태조사 DB수집
신유형개방지원사업 대상기관(1,160개)의 홈페이지를 사이트맵 단위로 점검하여 공공누리 부착 여부·게시물 형태·저작물 유형을 엑셀로 정리하는 데이터 수집 프로젝트.
루트 디렉터리: D:\01.프로젝트\DB수집
1. 프로젝트 구성
DB수집/
├─ ★[아이티앤] 공공저작물 자료조사 매뉴얼자료Ver1.2_260525.hwp # 조사 매뉴얼(v1.2)
├─ ★공공저작물 실태조사 조사원 자료 취합본(관리자)_2605212137.xlsx # 관리자 취합본
├─ 붙임1_...개방 대상기관(1160개) 실태조사 목록...양식_260518.xlsx # 1,160개 기관 마스터 양식
├─ 자료_취합_예시.xlsx # 작성 예시
├─ 2단계 안내사항.txt # 2단계 분배·작성 규칙
├─ 하이퍼링크활성화.py # K열 URL을 엑셀 하이퍼링크로 변환
│
├─ 1주차(5.19~5.25)/ # 지자체 2개 + 부처 3개 완료
│ ├─ 인천광역시(완료)/ # 분야별 메뉴 .txt + 작업본 xlsx + 크롤러
│ ├─ 전라남도(완료)/
│ ├─ 고용노동부(완료)/
│ ├─ 과학기술정보통신부(완료)/
│ ├─ 교육부(완료)/
│ └─ 수정/ # 샘플 .xlsm + 심예진 수정본
│
└─ 2주차/ # 부처 3개 진행
├─ 보건복지부/ # test.py = mohw.go.kr 크롤러
├─ 성평등가족부/ # test.py = 저작물 8유형 자동 분류기
└─ 외교부/ # test.py = /list.do 게시판 건수 수집기
각 부처/지자체 폴더의 전형적 구성:
<기관명>_홈페이지_사이트_*.xlsx— 단계별 작업본(r1, r2, ... 결과, 완료)<기관명>_메뉴.txt/메뉴구조.txt— 사이트맵 메뉴 텍스트 덤프*.py— 해당 기관 사이트 구조에 맞춘 크롤링 스크립트
2. 엑셀 데이터 스키마 (작업 컬럼)
크롤러 코드 기준 핵심 열:
| 열 | 번호 | 의미 | 채워지는 방법 |
|---|---|---|---|
| K | 11 | URL 주소 | 수기 입력 (1차 사이트맵 수집) |
| L | 12 | 게시판/페이지 구분 | 크롤러가 URL 패턴·DOM으로 자동 판별 |
| M | 13 | 게시물 수량 | 게시판일 때 total·totalCount 등에서 추출 |
| N | 14 | 저작물 유형 | 본문 분석 → 어문/이미지/영상/오디오/글꼴/3D/기타/없음 |
| O | 15 | 공공누리 부착 유형 | kogl.or.kr/info/licenseType 링크에서 1~4유형 추출 |
| P | 16 | 마크 부착위치 | 게시판/게시물 |
| Q | 17 | 부착 여부 보조 | (스크립트별 상이) |
데이터는 보통 3행 또는 4행부터 시작(헤더 2행).
3. 작성 규칙 (2단계 안내사항 발췌)
- 대분류는 지방자치단체 17개 우선, 중분류는 부/처/청 상단기관만 (단,
_기타포함 제외). 게시물형태 == 사이트:수량~마크 하이퍼링크공백 처리.저작물 유형및공공누리 연계는 작성 X.공공누리 부착유형이 여러 개이면 모두 기재(예:1유형, 4유형).- 게시물 0건 또는 자물쇠 페이지 →
공공누리 부착 = 미부착. - 게시판·게시물 동시 부착 →
마크 부착위치 = 게시판. - 페이지에만 부착 →
마크 부착위치 = 게시물. - 로그인·본인인증 페이지는 전부 삭제.
분배 현황(2단계 17개 지자체): 김재민(경남/울산/충남) · 구소영(경북/서울) · 심예진(강원/대전/세종/제주) · 방유정(경기/부산/전북) · 황의정(광주) · 정대원(대구/충북) · 프리랜서1(인천/전남/고용노동부/과기정통부/교육부).
4. 스크립트 카탈로그
루트 공용:
하이퍼링크활성화.py— K열의 http(s) URL을 엑셀 하이퍼링크로 변환 + 파란색 밑줄 스타일 적용. 입력/출력 경로는 스크립트 내부 상수.
기관별 크롤러(공통 패턴: requests + BeautifulSoup + openpyxl로 기존 서식을 보존하며 셀만 갱신):
| 위치 | 용도 |
|---|---|
2주차/외교부/test.py |
URL이 /list.do로 끝나면 L열에 "게시판" 표시, <div class="total"><span> 건수를 M열 기입 |
2주차/성평등가족부/test.py |
게시판 목록에서 fn_selectView(n) 패턴으로 상세 URL 최대 5개 수집 → 본문(table.brdView01 또는 div#contents) 분석 → 저작물 8유형 판별 |
2주차/보건복지부/test.py |
mohw.go.kr 페이지 판별, #totalCount 또는 span.total b로 건수 수집, 상세글 article.board_view 본문 영역 분석 |
1주차/인천광역시(완료)/페이지_마크찾기.py |
<main class="content"> 내 kogl.or.kr/info/licenseType{n} 링크에서 공공누리 유형 추출 → O열 기입 |
1주차/인천광역시(완료)/저작물유형구분.py |
저작물 유형 자동 분류 |
1주차/전라남도(완료)/전라남도_페이지_마크찾기_게시판.py |
전남 게시판형 마크 탐지 |
1주차/전라남도(완료)/페이지_마크찾기_페이지.py |
전남 페이지형 마크 탐지 |
1주차/고용노동부(완료)/페이지_마크찾기_allinone.py |
고용부 전 영역 통합 마크 탐지 |
공통 동작 원칙:
User-Agent를 Chrome으로 위장, 0.5~1초 슬리프로 차단 회피.openpyxl.load_workbook→ 셀만 수정 → 새 파일명(_r2,_결과,_완료등)으로 저장.- 본문 영역 셀렉터는 사이트별로 다름(상세 코드 주석 참조).
5. 산출물 네이밍 컨벤션
같은 데이터를 단계적으로 가공하면서 접미사로 버전 표시:
{기관명}_홈페이지_사이트_{r1|r2|r3|결과|완료}.xlsx
예) 외교부.xlsx → 외교부_업데이트.xlsx → ..._활성화_r4.xlsx → ..._활성화_r5.xlsx → 외교부_완료.xlsx
_완료 또는 _완료_ai 접미사가 붙은 파일이 최종본.
6. 실행 환경
- Python 3 +
openpyxl,requests,beautifulsoup4,urllib3. - Windows 경로(
D:\01.프로젝트\DB수집)와ownCloud\알바\...경로가 스크립트에 혼재 — 실행 전 입출력 경로 확인 필요. - 일부 사이트(성평등가족부 등) SSL 검증 우회(
verify=False) 사용.