GithubHelp home page GithubHelp logo

elementary_crawl's People

Contributors

hyeonski avatar

Stargazers

 avatar

Watchers

 avatar

elementary_crawl's Issues

이미지 크롤링 시 max size 지정 필요

크롤러 단에서 미리 max size를 지정해주어야 별다른 가공 없이 content html을 바로 렌더링할 수 있다.
이미지 핸들링 시 max size를 지정해주도록 변경한다.

초등학교 목록 크롤링 추가

전국 초등학교를 school 테이블에 저장할 수 있도록 초등학교 목록을 크롤링합니다.
데이터는 나이스 OPEN API에 xml 또는 json 형태로 요청하여 가져옵니다.

데이터 요청 방법

GET https://open.neis.go.kr/hub/schoolInfo

params:
 - KEY: API 인증키
 - Type: 데이터 포맷 (xml or json)
 - pSize: 페이지 당 데이터 개수
 - pIndex: 페이지 번호
 - SCHUL_KND_SC_NM: 학교 종류(초등학교 고정)

자세한 정보는 나이스 Open API 학교기본정보 데이터셋 상세에서 확인 가능

크롤러 코드 리팩토링

변경된 크롤러 구조에 따라 코드를 재작성합니다.
이미 진행한 서이초등학교를 변경된 크롤러 구조에 맞춰 다시 크롤링합니다.

  1. DB Connection 및 Data Insert/Update를 담당하는 객체 생성
  2. asyncio를 이용하는 크롤링 코드 작성
  3. 스크래핑 로직 변경
    1. 변경된 DB 테이블 구조에 맞춰 스크래핑 진행 (Data 전달 Class 수정)
    2. 첨부파일은 GCS 버킷에 업로드
      1. 버킷 내 오브젝트 이름: attachment/{uuid}/{filename}
    3. img태그 src 확인 후 GCS 버킷에 업로드
      1. 버킷 내 오브젝트 이름: image/{uuid}

데이터 확인 웹페이지 재구성

변경된 데이터 구조에 따라 데이터를 확인하는 웹페이지를 재구성합니다.

  1. 학교 선택 View 작성
  2. 학교 별 데이터 확인 View 수정

데이터 확인 웹페이지 UI 개선

  1. 학교별 post list view 또는 post detail view의 페이지 제목인 학교 이름을 클릭하면 해당 학교 post list view로 이동
  2. 학교 이름 옆에 메인 화면(학교 선택창)으로 가는 링크 추가

중복된 학교 이름이 많아 school 테이블 구조 변경 필요

중복된 학교 이름이 많아서 school 테이블에 컬럼을 추가해야합니다.
아래의 데이터를 기반으로 추가할 컬럼을 고려합니다.

나이스 Open API 기준 학교 기본 정보

  • ATPT_OFCDC_SC_CODE 시도교육청코드
  • ATPT_OFCDC_SC_NM 시도교육청명
  • SD_SCHUL_CODE 표준학교코드
  • SCHUL_NM 학교명
  • ENG_SCHUL_NM 영문학교명
  • LCTN_SC_NM 소재지명(광역지방자치단체)
  • JU_ORG_NM 관할조직명(교육지원청)
  • ORG_RDNZC 도로명우편번호
  • ORG_RDNMA 도로명주소
  • ORG_RDNDA 도로명상세주소
  • HMPG_ADRES 홈페이지주소

오늘의 급식(식단표) 크롤링 추가

오늘의 급식에 추가될 각 학교별 식단표를 크롤링합니다.
나이스 OPEN API에 xml 또는 json 형태로 데이터를 요청하여 저장합니다.

데이터 요청 방법

GET https://open.neis.go.kr/hub/mealServiceDietInfo

params:
 - KEY: API 인증키
 - Type: 데이터 포맷 (xml or json)
 - pSize: 페이지 당 데이터 개수
 - pIndex: 페이지 번호
 - ATPT_OFCDC_SC_CODE: 시도교육청코드
 - SD_SCHUL_CODE: 표준학교코드

시도교육청코드, 표준학교코드는 학교기본정보 데이터를 가져와 확인할 수 있음
자세한 정보는 나이스 Open API 급식식단정보 데이터셋 상세에서 확인 가능

DB 테이블 구조 수정

여러 학교들을 크롤링함에 따라 DB 테이블을 수정한다.

  1. 학교 테이블 추가
  2. post 테이블 내의 각 데이터 중복 방지 컬럼 수정
  3. attached_file 테이블의 각 데이터 중복 방지 컬럼 수정

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.