Toy Project

서비스 데모 준비를 위한 데이터 수집 (1)

JasonHan 2024. 5. 5. 01:27

데이터 수집 이슈 관련 해결

  • 기존 소스 코드에서는 csvFile_reader() 함수를 이용하여 엑셀 파일을 수집하였다.
if open_search_terms1.replace(" ", "_") in title and open_search_terms2 in title:    
    # bm.csvFile_download(filename , data_id)       # basic_method의 csvFile_download 메소드 사용하여 엑셀파일 다운로드
    csvFile_reader(filename, data_id)
    break
    logger.info(f"Data Successfully Download - FileName : {title}")
    
## csvFile_reader 함수
def csvFile_reader(filename, data_id):
    ''' csvFile_download 함수는 requests.get을 사용하며
        서울시 공공데이터의 CSV 파일을 다운로드 받기 위한 메소드
        
        filename : 다운로드 받을 경로 및 파일명, data_id : 게시물 id 값
    '''
    with open(filename, "wb") as file:
        # ua = UserAgent(use_cache_server=True)
        ua = UserAgent()
        headers = {"User-Agent": ua.random}
        response = requests.get(f"<https://data.seoul.go.kr/dataList/dataView.do?onepagerow=1000&srvType=S&infId={data_id}&serviceKind=1&pageNo=1&ssUserId=SAMPLE_VIEW&strWhere=&strOrderby=&filterCol=%ED%95%84%ED%84%B0%EC%84%A0%ED%83%9D&txtFilter=>", headers=headers)
        print(response.text)
        print("="*100)
  • 예전 개발 때 사용하던 csvFile_download() 함수를 사용하니 간단하게 해결되었다.
def csvFile_download(filename, data_id):
    ''' csvFile_download 함수는 requests.get을 사용하며
        서울시 공공데이터의 CSV 파일을 다운로드 받기 위한 메소드
        
        filename : 다운로드 받을 경로 및 파일명, data_id : 게시물 id 값
    '''
    response = get(f'<http://datafile.seoul.go.kr/bigfile/iot/sheet/csv/download.do?onepagerow=1000&srvType=S&infId={data_id}&serviceKind=1&pageNo=1&ssUserId=SAMPLE_VIEW&strWhere=&strOrderby=&>')
    print(f'<http://datafile.seoul.go.kr/bigfile/iot/sheet/csv/download.do?onepagerow=1000&srvType=S&infId={data_id}&serviceKind=1&pageNo=1&ssUserId=SAMPLE_VIEW&strWhere=&strOrderby=&>')
    with open(filename, "wb") as file:
        file.write(response.content)
  • csvFile_reader() 함수로 변경했던 것은 한 가지 이유였다. 바로 당시에 해당 사이트에서 크롤링을 통해 다운로드를 하는 것을 막는 것으로 확인하여 fakeuser agent로 헤더 정보에 유저 에이전트 정보를 랜덤하게 보내기 위해서 였다.

웹 드라이버 버전 정보 자동으로 가져오기

  • 기존 소스 코드에서는 웹 드라이버 버전을 수동으로 입력하여 크롬 브라우저의 드라이버 버전이 업그레이드 될 때마다 수동으로 바꿔줘야 하는 번거로움이 있었다.
  • 위를 해결하기 위하여 크롬 드라이버 설치 경로에서 설치 관련 xml 파일을 읽어와 자동으로 처리하도록 변경했다.
driver_version = bm.get_chrome_version()
driver_version_simple = int(driver_version.split('.')[0])
logger.info(f"Current Chrome Browser Version : {driver_version}")
driver_path = ChromeDriverManager(driver_version=driver_version).install()
driver = uc.Chrome(executable_path=driver_path, version_main=driver_version_simple, enable_cdp_events=True, options=options)

## bm.get_chrome_version() 함수
def get_chrome_version():
    """
    크롬 버전을 가져오는 함수입니다.
    
    가능한 경로에서 크롬 버전을 찾아 반환합니다.
    크롬이 설치되어 있지 않은 경우 "Chrome is not installed."를 반환합니다.
    
    Returns:
        str: 크롬 버전 또는 "Chrome is not installed."
    """
    possible_paths = [
        r'C:\\Program Files\\Google\\Chrome\\Application\\chrome.VisualElementsManifest.xml',
        r'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.VisualElementsManifest.xml'
    ]
    version = "Chrome is not installed."

    for path in possible_paths:
        if os.path.exists(path):
            try:
                tree = ET.parse(path)
                root = tree.getroot()
                visual_elements = root.find("VisualElements")
                logo_path = visual_elements.get("Square150x150Logo")
                version = logo_path.split("\\\\")[0]
                break
            except Exception as e:
                version = str(e)
    return version
  • possible_paths 경로는 Windows11 버전에 맞는 경로이다. (기본 설치 경로로 설치 시)

데이터 수집

  • 노원구의 공릉동을 기준으로 테스트 할 것이기 때문에, 인허가 정보 중 노원구에 해당하는 데이터만 가져오도록 설정했다.
open_search_terms1 = "인허가 정보"
open_search_terms2 = "노원구"

# -- 중략 --

# 다운로드 할 데이터 필터링 부분
if open_search_terms1.replace(" ", "_") in title and open_search_terms2 in title:    
    bm.csvFile_download(filename , data_id)                                                     # basic_method의 csvFile_download 메소드 사용하여 엑셀파일 다운로드
    logger.info(f"[Success] Data Successfully Download - FileName : {title}")
  • 총 97개 엑셀 파일을 확보 할 수 있었으며, 다운로드에는 4.62분 정도가 소요되었다. 확보한 정보는 아래와 같다.
개인하수처리시설관리업(사업장), 건강기능식품유통전문판매업, 건물위생관리업, 게임물배급업, 게임물제작업, 고압가스업, 골프연습장업, 공연장, 관광식당, 국내여행업, 국외여행업, 국제회의기획업, 노래연습장업, 단란주점영업, 담배도매업, 담배소매업, 당구장업, 대규모점포, 대기오염물질배출시설설치사업장, 동물병원, 동물약국, 동물용의료용구판매업, 동물용의약품도매상, 동물판매업, 목욕장업, 무도학원업, 무료직업소개소, 미용업, 민방위급수시설, 방문판매업, 배출가스전문정비사업자(확인검사대행자), 병원, 복합유통게임제공업, 부속의료기관, 비디오물감상실업, 비디오물배급업, 비디오물시청제공업, 비디오물제작업, 사료제조업, 산후조리업, 세탁업, 소독업, 수영장업, 숙박업, 식용얼음판매업, 식육포장처리업, 식품소분업, 식품운반업, 식품자동판매기업, 식품제조가공업, 식품판매업(기타), 쓰레기종량제봉투판매업, 안경업, 안전상비의약품_판매업소, 약국, 영화배급업, 영화상영관, 영화수입업, 옥외광고업, 외국인관광도시민박업, 용기·포장지제조업, 위탁급식영업, 유료직업소개소, 유원시설업(기타), 유통전문판매업, 유흥주점영업, 음반.음악영상물배급업, 음반.음악영상물제작업, 의료기기수리업, 의료기기판매(임대)업, 의료법인, 의료유사업, 의원, 이용업, 인쇄사, 일반게임제공업, 일반야영장업, 일반여행업, 일반음식점, 저수조청소업, 전통사찰, 전화권유판매업, 제과점영업, 종합체육시설업, 즉석판매제조가공업, 지하수시공업체, 지하수영향조사기관, 집단급식소, 집단급식소식품판매업, 청소년게임제공업, 체력단련장업, 체육도장업, 축산가공업, 출판사, 치과기공소, 특정고압가스업, 환경측정대행업

 

  • 수집 로그 또한 정상적으로 확인되었다. (Skip 로그 줄 삭제)
2024-05-04 23:41:57,369 - basic_method - INFO - Current Chrome Browser Version : 124.0.6367.119
2024-05-04 23:42:03,250 - basic_method - INFO - 인허가 정보 Search Results - Total Data Count : 3071, Total Pages: 308
2024-05-04 23:42:12,328 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_이용업_인허가_정보
2024-05-04 23:42:12,784 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_체력단련장업_인허가_정보
2024-05-04 23:42:13,805 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_목욕장업_인허가_정보
2024-05-04 23:42:13,861 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식품소분업_인허가_정보
2024-05-04 23:42:28,146 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_세탁업_인허가_정보
2024-05-04 23:42:33,339 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_위탁급식영업_인허가_정보
2024-05-04 23:42:34,284 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_동물약국_인허가_정보
2024-05-04 23:42:34,348 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_복합유통게임제공업_인허가_정보
2024-05-04 23:42:36,342 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_집단급식소_인허가_정보
2024-05-04 23:42:36,840 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_병원_인허가_정보
2024-05-04 23:42:37,329 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_체육도장업_인허가_정보
2024-05-04 23:42:37,846 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_담배도매업_인허가_정보
2024-05-04 23:42:41,878 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_영화상영관_인허가_정보
2024-05-04 23:42:45,280 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식육포장처리업_인허가_정보
2024-05-04 23:42:47,614 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_무료직업소개소_인허가_정보
2024-05-04 23:42:48,130 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_저수조청소업_인허가_정보
2024-05-04 23:42:50,074 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_비디오물시청제공업_인허가_정보
2024-05-04 23:42:50,686 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_안경업_인허가_정보
2024-05-04 23:43:08,239 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_유흥주점영업_인허가_정보
2024-05-04 23:43:28,339 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_대기오염물질배출시설설치사업장_인허가_정보
2024-05-04 23:43:28,378 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_환경측정대행업_인허가_정보
2024-05-04 23:43:28,879 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_유원시설업(기타)_인허가_정보
2024-05-04 23:43:29,385 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_용기·포장지제조업_인허가_정보
2024-05-04 23:43:30,407 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_종합체육시설업_인허가_정보
2024-05-04 23:43:32,292 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_동물판매업_인허가_정보
2024-05-04 23:43:32,827 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_의료기기수리업_인허가_정보
2024-05-04 23:43:33,802 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_국제회의기획업_인허가_정보
2024-05-04 23:43:37,227 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_당구장업_인허가_정보
2024-05-04 23:43:38,225 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_고압가스업_인허가_정보
2024-05-04 23:43:38,773 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_비디오물제작업_인허가_정보
2024-05-04 23:43:39,784 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_일반게임제공업_인허가_정보
2024-05-04 23:43:41,712 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_소독업_인허가_정보
2024-05-04 23:43:42,686 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_치과기공소_인허가_정보
2024-05-04 23:43:43,252 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_단란주점영업_인허가_정보
2024-05-04 23:43:43,295 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_지하수영향조사기관_인허가_정보
2024-05-04 23:43:44,865 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_출판사_인허가_정보
2024-05-04 23:43:45,816 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_인쇄사_인허가_정보
2024-05-04 23:43:46,337 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_숙박업_인허가_정보
2024-05-04 23:43:52,284 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_축산가공업_인허가_정보
2024-05-04 23:43:53,829 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_전화권유판매업_인허가_정보
2024-05-04 23:44:13,236 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_영화수입업_인허가_정보
2024-05-04 23:44:13,733 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식품운반업_인허가_정보
2024-05-04 23:44:17,063 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_관광식당_인허가_정보
2024-05-04 23:44:18,450 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_배출가스전문정비사업자(확인검사대행자)_인허가_정보
2024-05-04 23:44:18,531 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식품제조가공업_인허가_정보
2024-05-04 23:44:19,913 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_지하수시공업체_인허가_정보
2024-05-04 23:44:20,907 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_국내여행업_인허가_정보
2024-05-04 23:44:23,141 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_건물위생관리업_인허가_정보
2024-05-04 23:44:24,214 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_의료유사업_인허가_정보
2024-05-04 23:44:24,727 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_사료제조업_인허가_정보
2024-05-04 23:44:25,525 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식품자동판매기업_인허가_정보
2024-05-04 23:44:26,531 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_동물용의료용구판매업_인허가_정보
2024-05-04 23:44:29,366 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식용얼음판매업_인허가_정보
2024-05-04 23:44:29,885 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_게임물제작업_인허가_정보
2024-05-04 23:44:31,796 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_특정고압가스업_인허가_정보
2024-05-04 23:44:32,895 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_일반음식점_인허가_정보
2024-05-04 23:44:33,404 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_비디오물배급업_인허가_정보
2024-05-04 23:44:35,285 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_개인하수처리시설관리업(사업장)_인허가_정보
2024-05-04 23:44:37,151 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_일반야영장업_인허가_정보
2024-05-04 23:44:38,136 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_골프연습장업_인허가_정보
2024-05-04 23:44:47,032 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_옥외광고업_인허가_정보
2024-05-04 23:44:47,525 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_건강기능식품유통전문판매업_인허가_정보
2024-05-04 23:44:47,573 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_비디오물감상실업_인허가_정보
2024-05-04 23:44:54,899 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_집단급식소식품판매업_인허가_정보
2024-05-04 23:44:55,413 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_일반여행업_인허가_정보
2024-05-04 23:44:55,629 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_담배소매업_인허가_정보
2024-05-04 23:44:58,522 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_전통사찰_인허가_정보
2024-05-04 23:45:00,044 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_동물병원_인허가_정보
2024-05-04 23:45:00,087 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_게임물배급업_인허가_정보
2024-05-04 23:45:00,148 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_청소년게임제공업_인허가_정보
2024-05-04 23:45:00,195 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_외국인관광도시민박업_인허가_정보
2024-05-04 23:45:00,681 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_산후조리업_인허가_정보
2024-05-04 23:45:03,082 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_민방위급수시설_인허가_정보
2024-05-04 23:45:04,527 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_동물용의약품도매상_인허가_정보
2024-05-04 23:45:04,789 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_의료기기판매(임대)업_인허가_정보
2024-05-04 23:45:06,644 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_방문판매업_인허가_정보
2024-05-04 23:45:10,722 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_즉석판매제조가공업_인허가_정보
2024-05-04 23:45:12,072 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_유료직업소개소_인허가_정보
2024-05-04 23:45:16,420 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_노래연습장업_인허가_정보
2024-05-04 23:45:17,852 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_안전상비의약품_판매업소_인허가_정보
2024-05-04 23:45:20,264 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_수영장업_인허가_정보
2024-05-04 23:45:20,789 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_음반.음악영상물배급업_인허가_정보
2024-05-04 23:45:22,683 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_부속의료기관_인허가_정보
2024-05-04 23:45:27,232 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_의원_인허가_정보
2024-05-04 23:45:37,918 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_유통전문판매업_인허가_정보
2024-05-04 23:45:39,012 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_대규모점포_인허가_정보
2024-05-04 23:45:40,170 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_공연장_인허가_정보
2024-05-04 23:45:41,123 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_의료법인_인허가_정보
2024-05-04 23:45:41,171 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_음반.음악영상물제작업_인허가_정보
2024-05-04 23:45:42,252 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_약국_인허가_정보
2024-05-04 23:45:42,294 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_영화배급업_인허가_정보
2024-05-04 23:45:46,103 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_미용업_인허가_정보
2024-05-04 23:45:46,646 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_쓰레기종량제봉투판매업_인허가_정보
2024-05-04 23:45:48,097 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_무도학원업_인허가_정보
2024-05-04 23:45:48,578 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_식품판매업(기타)_인허가_정보
2024-05-04 23:45:49,596 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_제과점영업_인허가_정보
2024-05-04 23:45:49,647 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_국외여행업_인허가_정보
2024-05-04 23:46:02,474 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_제과점영업_인허가_정보
2024-05-04 23:46:02,522 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_국외여행업_인허가_정보
2024-05-04 23:46:06,328 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_제과점영업_인허가_정보
2024-05-04 23:46:06,370 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_국외여행업_인허가_정보
2024-05-04 23:46:10,129 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_제과점영업_인허가_정보
2024-05-04 23:46:10,170 - basic_method - INFO - [Success] Data Successfully Download - FileName : 서울시_노원구_국외여행업_인허가_정보
2024-05-04 23:46:34,553 - basic_method - INFO - [End Run] Running Time: During 4.62 Minutes Running

다음 목표

위 데이터를 준비한 MongoDB로 저장

  • 필요 없는 데이터 제외 (75개)
개인하수처리시설관리업(사업장), 건강기능식품유통전문판매업, 건물위생관리업, 게임물배급업, 게임물제작업, 고압가스업, 국내여행업, 국외여행업, 국제회의기획업, 담배도매업, 담배소매업, 대기오염물질배출시설설치사업장, 동물병원, 동물약국, 동물용의료용구판매업, 동물용의약품도매상, 동물판매업, 무도학원업, 무료직업소개소, 미용업, 민방위급수시설, 방문판매업, 배출가스전문정비사업자(확인검사대행자), 병원, 복합유통게임제공업, 부속의료기관, 비디오물감상실업, 비디오물배급업, 비디오물제작업, 사료제조업, 산후조리업, 세탁업, 소독업, 식용얼음판매업, 식육포장처리업, 식품소분업, 식품운반업, 식품자동판매기업, 식품제조가공업, 쓰레기종량제봉투판매업, 안경업, 안전상비의약품_판매업소, 약국, 영화배급업, 영화수입업, 옥외광고업,용기·포장지제조업, 위탁급식영업, 유료직업소개소, 유통전문판매업, 유흥주점영업, 음반.음악영상물배급업, 음반.음악영상물제작업, 의료기기수리업, 의료기기판매(임대)업, 의료법인, 의료유사업, 의원, 이용업, 인쇄사, 일반게임제공업, 저수조청소업, 전화권유판매업, 즉석판매제조가공업, 지하수시공업체, 지하수영향조사기관, 집단급식소, 집단급식소식품판매업, 청소년게임제공업, 체력단련장업, 체육도장업, 축산가공업, 출판사, 치과기공소, 특정고압가스업, 환경측정대행업

 

  • 필요한 데이터 리스트 (21개)
골프연습장업, 공연장, 관광식당, 노래연습장업, 단란주점영업, 당구장업, 대규모점포, 목욕장업, 수영장업, 숙박업, 식품판매업(기타), 영화상영관, 비디오물시청제공업, 외국인관광도시민박업, 유원시설업(기타), 일반야영장업, 일반여행업, 일반음식점, 전통사찰, 제과점영업, 종합체육시설업

 

  • 필요한 파일을 이동하기 위한 코드
# -*- coding: utf-8 -*- 

import os
import shutil

def move_filtered_files():
    """
    지정된 기본 경로에서 주어진 필터를 기반으로 파일을 'essential_csv'라는 하위 폴더로 이동합니다.

    매개변수:
    - base_path (str): 파일이 위치한 기본 경로입니다.
    - filter (list): 파일을 필터링하는 데 사용되는 문자열의 리스트입니다.

    반환값:
    - None
    """

    base_path = input("기본 경로를 입력하세요: ")
    filter = list(input("필터를 입력하세요: ").split(", "))

    # 주어진 필터를 기반으로 파일을 필터링합니다.
    filtered_files = [i for i in os.listdir(base_path) if any(n in i for n in filter)]
    print("대상파일 수:", len(filtered_files))

    # 'essential_csv'라는 하위 폴더가 없으면 생성합니다.
    os.makedirs(f"{base_path}/essential_csv", exist_ok=True)

    # 필터링된 파일을 'essential_csv'라는 하위 폴더로 이동합니다.
    for file in filtered_files:
        source_path = os.path.join(base_path, file)
        destination_path = os.path.join(base_path, "essential_csv", file)
        shutil.move(source_path, destination_path)

    # 이동된 CSV 파일의 수를 출력합니다.
    moved_files = len([i for i in os.listdir(f"{base_path}/essential_csv") if i.endswith(".csv")])
    print(f"필터링된 {moved_files} csv 파일이 성공적으로 이동되었습니다.")

move_filtered_files()
  • 몽고 DB에서 필요한 구조 정하기

추가로 필요한 데이터 수집

  • 서울 열린 데이터 광장

OPEN API | 서울시 교통정보 시스템 - TOPIS

서울시 지하철 실시간 도착정보, 서울시 지하철 실시간 열차 위치정보, 서울시 지하철 실시간 도착정보(일괄), 서울시 실시간 도로 소통 정보, 서울시 버스노선 기본정보 항목정보, 서울시 버스정류소 위치정보

 

  • 카카오맵 데이터 (테스트 용으로 추후에는 제휴 등을 통해 연동)
가게 정보, 메뉴 및 가격 정보, 후기, 리뷰 등 수집

 

가게 기본 정보 및 메뉴/가격 정보

 

가게 관련 사진
후기 및 리뷰

 

데이터 활용 방안

  • 알고리즘을 통해 일자/기간, 식사 시간, 이동 시간, 취침 시간을 입력하면 리스트로 갈 장소를 리스트로 뽑아주기
    (저녁 시간 ~ 숙박 한정으로 테스트 예정)
  • 예산 등의 설정은 추후 구현 예정 (많은 데이터 수집이 필요)