Skip to content

Conversation

@seoyeong200
Copy link
Collaborator

@seoyeong200 seoyeong200 commented Nov 11, 2024

올리브영 수집 코드 개발스펙 추가

TODO

  • refactor. requests & beautiful soup to webdriver via selenium
    - driver class / method
  • refactor. apply item list paginating) collect items of each brand
  • add. review data scrapping
    - need to collect each items' url
    - in each url, collect review data
    - click event # 1. order by date
    - click event # 2. paginating
  • need to add dockeroperator in airflow - remote webdriver

데이터 구조 수정

ASIS

{
"듀오":
    {"query_keyword":["DUO"],
"brand_shop_detail_url":"https://www.oliveyoung.co.kr/store/display/getBrandShopDetail.do?onlBrndCd=A002348",
      "category":["미용소품_아이소품"],
      "items":{"브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 클리어 튜브 14g":false,
              "브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 다크 튜브 7g":true,
              "브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 7g (다크, 클리어) 튜브 타입 택1":true,
              "브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 14g ( 다크, 클리어 ) 튜브 타입 택 1":false,
              "브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 5g ( 다크, 클리어 ) 팁 타입 택 1":true,
              "브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 클리어 튜브 7g":true},
      "released_date":"2024-08-19"}
  }

TOBE
items 필드 수정

  • "items" 필드
    • asis : {제품명|str : 할인여부|bool}
      1. id key 값으로 주고 name, url, is_promotion 리스트로 그냥 묶어서 value로
      • {id|str : [name|str, url|str, is_promotion|bool]}
      1. items dataclass 안에 또 들어가기
      1. 아예 클래스 분리하기
        Brand
  • 최초 한번만 모아서 적재해놓고
  • 아이템 일주일 단위로 최신화할때 이 데이터 블러서 url 뽑아서 아이템, 리뷰 크롤링
{
"brand_id":
    {
    "brand_name":"듀오"
    "query_keyword":["DUO"],
    "brand_shop_detail_url":"https://{domain}/store/display/getBrandShopDetail.do?onlBrndCd=A002348",
    "category":["미용소품_아이소품"],
    "released_date":"2024-08-19"}
}

Items

{
"itemID":
    {"brand_id": "#####",
    "name": "브랜드관^듀오_베스트^듀오 퀵셋 속눈썹 접착제 클리어 튜브 14g",
    "url": "https://{domain}/store/display/getBrandShopDetail.do?onlBrndCd=A002820&t_page=%EC%83%81%ED%92%88%EC%83%81%EC%84%B8&t_click=%EB%B8%8C%EB%9E%9C%EB%93%9C%EA%B4%80_%EC%83%81%EB%8B%A8&t_brand_name=%ED%86%A0%EB%A6%AC%EB%93%A0",
    "reviews": []
    "is_in_promotion": True/False
    }
}

seoyeong200 and others added 30 commits August 30, 2024 03:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant