Skip to content

weniv/business

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

business

위니브에 적합한 사업 공고를 자동 크롤링하여 정적 페이지에 노출하는 프로젝트입니다. HTML/CSS/JS 는 고정이고, data.json 파일만 교체하면 페이지가 자동으로 업데이트됩니다.

구조

business/
├── index.html   # 페이지 구조 (고정)
├── style.css    # 스타일 (고정)
├── script.js    # 렌더링 로직 (고정)
└── data.json    # 크롤러가 업데이트하는 데이터 파일  ← 여기만 수정

로컬 실행

fetchdata.json을 불러오므로 반드시 HTTP 서버로 띄워야 합니다. (file:// 로 직접 열면 CORS 로 실패합니다.)

# Python 3
python -m http.server 8000
# → http://localhost:8000

크롤러가 업데이트해야 할 부분

크롤러는 오직 data.json 파일만 덮어쓰면 됩니다. 다른 HTML/CSS/JS 파일은 수정할 필요가 없습니다.

data.json 스키마

{
  "lastUpdated": "YYYY-MM-DD",
  "businesses": [
    {
      "id": "고유ID (문자열)",
      "title": "사업 공고 제목",
      "agency": "주관 기관",
      "category": "카테고리 (예: 에듀테크, 웹개발, 콘텐츠 등)",
      "description": "사업 요약 설명",
      "budget": "지원 금액 (예: '최대 2억원')",
      "deadline": "YYYY-MM-DD 형식의 신청 마감일",
      "postedDate": "YYYY-MM-DD 형식의 공고 등록일",
      "url": "공고 상세 페이지 링크"
    }
  ]
}

필드 설명

필드 타입 필수 설명
lastUpdated string O 최상위. 크롤링 완료 시각 (YYYY-MM-DD)
businesses array O 최상위. 사업 공고 배열
id string O 항목별 고유 식별자
title string O 카드 상단 제목으로 표시됨
agency string O 제목 아래 기관명으로 표시됨
category string O 상단 필터 버튼 자동 생성에 사용됨
description string 카드 본문 설명
budget string 지원금액 영역에 표시
deadline string O 반드시 YYYY-MM-DD 형식 — D-day 계산에 사용됨
postedDate string 등록일 영역에 표시
url string "공고 상세보기" 버튼 링크

자동 동작

  • category 값이 바뀌면 상단 필터 버튼이 자동으로 재생성됩니다.
  • deadline 기준으로 마감 임박순 정렬됩니다.
  • 마감까지 7일 이하인 공고는 빨간색으로 강조됩니다.
  • 지난 마감일은 D-day 표시가 생략됩니다.

크롤러 연동 예시

크롤러(별도 구현)는 이 프로젝트 루트의 data.json 을 원자적으로 덮어쓰기만 하면 됩니다.

import json
from pathlib import Path
from datetime import date

result = {
    "lastUpdated": date.today().isoformat(),
    "businesses": crawled_items,  # 위 스키마 형태의 리스트
}

Path("data.json").write_text(
    json.dumps(result, ensure_ascii=False, indent=2),
    encoding="utf-8",
)

커스터마이징 포인트

바꾸고 싶은 것 수정할 파일
페이지 제목/설명 문구 index.html.site-header 블록
색상/폰트/레이아웃 style.css 상단의 :root CSS 변수
카드에 표시되는 필드/형식 script.jscardTemplate() 함수
정렬 기준 (기본: 마감일순) script.jsrender()sort 블록
마감 임박 기준 (기본: 7일) script.jsisUrgent() 함수

About

클로드로 자동 크롤링한 것을 실행하는 테스트하는 페이지

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors