Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

웹 크롤링 기초 연습

목표

  • 프로젝트에 필요한 웹 크롤링 기술 연마
    • django DB에 저장할 데이터 긁어오는 연습하기

새로 알게된 사실 2024.05.15

  • venv activate 위치는 OS마다 다름 (scripts X, bin O)

    • 매번 윈도우로만 만들다가 맥을 사용한데 이런 다른 점이 있다니.
      • 일단 나머지는 똑같은 거 같다.
  • 새마을금고는 행안부 소속이다.

    • 프로젝트 주제가 금융 api라 금융감독원 오픈 api를 쓸 예정인데 안나오는 이유를 알았다.
  • 장고는 동기식인데 필요한 건 비동기식이면 settings.py를 건들이면 되긴하다.

    • 이럴바엔 장고말고 자바스크립트로 하는게 나을 것 같다. 솔직히 playwrigtht는 꼭 파이썬이어야만 하는 것은 아니니
    • selenium보다 더 좋은 것 같은게 좀 더 빠른 느낌?
  • 웹크롤링은 방지 기능이 있는 곳이 많다.

    • headers로 속이자

새로 알게된 사실 2024.05.20

  • 비동기로하는게 어렵다.
  • 에러 겁나 떠! 언제 비동기로 해야되는지를 잘 생각해야할듯

정리 2024.06.02

  • 장고에서 바로 DB에 돌려보기와 장고 없이 하는 것 나눔

    • samples는 장고 앱

      • api/v1/search/로 간단히 모든 지역구 이름들 크롤링해 DB에 저장
    • 새마을금고금리크롤링

      • 완성_새마을금고금리는 모든 지점 이름과 원하는 상품 금리 이율만 긁어 intr_info.json에 저장

      • 장고DB에_맞게_가공은 싸피에서 했던 프로젝트 DB에 맞게 형태 수정함

        • 첫 장고 구동시 fixutres로 넣음
          • 크롤링이 느려서 한번 확인하는데 한시간 반은 걸림.. ThreadPoolExecutor을 사용해서 기존 3시간 반에 비해서 줄어들었지만 한계가 있음
            • 프로젝트 시간 내에 최적화를 더 못할 것으로 판단해 fixtures 형태로 미리 돌린 것 넣고 시작함
      • 장고내에서_정기적으로_돌릴것은 사람들이 잘 사용안할 법한 시간(새벽 3시)에 돌려서 이전 정보와 비교를 시행

        • 같으면 기존 것의 isCheck 항목만 True로, 다르면 지우고 새 걸로 DB에 저장
          • 크롤링한 것과 오픈 api로 받아온 것들 다 확인하고 isCheck가 false(아예 상품이 사라진 걸로 추측된 녀석들)인 데이터 삭제

미완성인 부분

  • 장고내에서_정기적으로_돌릴것

    • 장고에서 테스트 시 문제 여부 확인 못함..
    • 오픈api로 받아온 것 비교 시행하는 건 잘 돌아갔으니, 문제가 없으면 잘 돌아갈 것임.. 아마
  • 수협 크롤링

    • 프로젝트 기간이 짧고, 처음 해본 일이라 다 못하고 프로젝트 끝나버림

나중에 새로 할 것

  • playwright 공부해서 더 최적화
    • iframe로 되어있는 경우 아직도 많이 헤맴..

About

django로 웹크롤링

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages