사료 DB 구축 프로젝트 (kibbl.ai)

소개

저는 개별 강아지의 상태를 고려하여, 최적의 사료 및 영양제를 추천 해주는 서비스를 만들고 있습니다.

향후 아픈 애들을 위한 처방식 DB도 구축 해야 하지만, 먼저 건강한 애들을 위한 일반식 (비처방식) 사료 DB 구축을 하려고 합니다.

아래 2가지가 궁금 했습니다.

  1. 비개발자인 나도 일반식 데이터를 crawling 해 올 수 있을까?

  2. Crawling 해 온 데이터를 기반으로 영양소의 수치 분포를 볼 수 있을까. (ex. 50개의 사료 샘플 중 몇개가 저단백, 몇개가 중단백, 몇개가 고단백으로 분류 되는가)

저는 수의 영양학자이기 때문에 사료 원료 뿐만 아니라 영양소의 수치 정보(ex. 저단백, 중단백, 고단백)도 중요합니다. 질환에 따라 저단백이 추천 (ex. 콩팥병)이 될 때도 있고, 고단백이 추천 (ex. 비만) 될 때도 있기 때문입니다.

진행 방법

사용한 툴
1. www.firecrawl.dev

2. Claude 3.7 Sonnet & Artifact

  1. firecrawl

    자연어로 코딩 없이 웹크롤링 할 수 있는 툴입니다.

    systrader79 님의 블로그 글 참조 (https://wikidocs.net/blog/@systrader79/1347/?fbclid=IwY2xjawH9ypdleHRuA2FlbQIxMQABHdt3eFuP6lKTR-38H_W5r7q5WoLDkqIbNpHyCiLNTj1hgVI_ovDCLk1FMA_aem_YljHrOZ8VGYL1xAKt_TCDg)



    웹사이트 상단에 보이시는 'Extract' 버튼을 누르신 후, 중간에 보이는 흰 박스에 대략적으로 원하는 것을 타이핑 해 주시면,

프롬프트가있는 웹 데이터라는 단어가있는 웹 페이지

아래 화면으로 넘어와서 데이터 크롤링 해올 URL을 넣으실 수 있고, 어떤씩으로 구조를 짰는지 Schema 를 보여주며, 프롬프트 수정이 가능합니다.

페이팔 페이지의 스크린 샷

저는 미국에서 가장 많이 쓰는 반려동물 전자상거래 플랫폼인 chewy.com 에서 사료 정보를 크롤링 해보고 싶었습니다. dog -> dog food -> dry & wet food -> best seller 순으로 선택하여 뜨는 사료 리스트 URL을 feed 하였습니다. 1 페이지당 사료가 20 ~ 25개 정도 되어 보여서, 대략 60~75개 정도의 사료 목록이 나올 것으로 판단 했습니다.

프롬프트: Extract the minimum protein, minimum fat, maximum crude fiber, and calorie (kcal/kg) data from the product pages.

크롤링 후에 하단과 같은 결과물을 보여줍니다.

  1. Claude 3.7 Sonnet & Artifact

firecrawl 에서 뱉어준 결과값을 클로드에서 테이블로 만들어 달라고 했습니다.

후에 수의 영양학자가 사용하는 계산식을 사용하여 사료 레이블에 있는 수치 단위를 더 일관적으로 비교할 수 있는 수치 단위로 바꾸는 작업을 해줬습니다. (gauranteed analysis -> caloric basis)

하단 왼쪽 화면을 보시면 단백질 수준 저중고, 지방 수준 저중고, 섬유질 수준 저중고의 분포를 보여주고 있습니다. 분포가 고르지는 않습니다만, 제가 기대한 수준으로 잘 분류가 된 것 같습니다.

최종적으로 상단 오른쪽의 검은 색 화면에 보이는 것 처럼, csv 파일로 추출해달라고 한 다음에, 에어테이블에 옮겨서 추가 작업하고 있습니다.

결과와 배운 점

일반인도 웹크롤링 할 수 있구나..! 비프로그래머도 MVP 를 빠르게 만들어 볼 수 있는 좋은 시대구나! 하는 생각이 들었습니다.

앞으로 사료의 수치 변수 (numerical value) 뿐만 아니라 원료 등의 명목 변수 (categorical value) 도 크롤링 해볼 예정 입니다.

도움 받은 글 (옵션)

https://wikidocs.net/blog/@systrader79/1347/?fbclid=IwY2xjawH9ypdleHRuA2FlbQIxMQABHdt3eFuP6lKTR-38H_W5r7q5WoLDkqIbNpHyCiLNTj1hgVI_ovDCLk1FMA_aem_YljHrOZ8VGYL1xAKt_TCDg

(내용 입력)

4
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요