GDSC 토이프로젝트(3) - 편의점 행사 상품 크롤링

chaejm55·2023년 8월 18일
0

GDSC-KNU-2nd-Backend

목록 보기
6/10

GDSC 백엔드 스터디 팀의 토이 프로젝트를 통해 작성한 게시물입니다.

이번엔 제 역할 중에 두 번째인 편의점 행사 상품 정보 크롤링하기입니다.
마찬가지로 python을 사용해 크롤링하고, 이를 csv로 저장해 다시 db에 입력해서 사용하는 방식으로 진행하였습니다.

1. 각 편의점 행사 상품 정보 웹 사이트 찾기

각 편의점 사이트를 직접가서 조사해보니 모든 상품을 찾기도 힘들었고, 동적으로 상품 목록을 가져와야 하기도 했습니다. 그래서 시간안에 이걸 하나하나 하기는 힘들다고 판단하여 다른 곳을 찾던 도중 pyony.com에서 행사 상품 정보를 모아둔 것을 보고 이 사이트를 활용하였습니다.

2. pyony 크롤링하기

pyony에는 다양한 편의점의 할인 상품 정보가 있었습니다. 종전 할인 기록 등등 여러 정보가 있었고 우리가 이전에 짠 테이블에 맞게 크롤링한 정보를 가공하여서 사용했습니다. robots.txt를 확인하고 크롤링 제한이 없는 것을 확인하고 최대한 사이트에 부하가 덜 걸리게 조금 길게 딜레이를 주어 할인 상품 정보를 가져왔습니다.

3. 행사 상품 정보 csv로 저장하기

pandas를 이용해 사용할 데이터에 알맞게 dataFrame을 만들고 csv로 저장했습니다.

def to_csv(csv_file_name, conv_stores_info):
    conv_data = pd.DataFrame(conv_stores_info)
    conv_data.columns = ['brand_name', 'branch_name', 'address', 'latitude', 'longitude', 'service']
    conv_data.to_csv(csv_file_name, encoding='utf-8-sig')

여기서 얻은 csv를 db에 넣어 서비스를 했습니다.

4. 추후 개선 방안

  1. 직접 편의점 제공 정보에서 크롤링
    • 타 서비스 의존 제거
    • 추후 행사 상품 정보를 얻는 경로를 알아내 직접 크롤링
  2. 크롤링 속도 개선
    • 추후 멀티 쓰레딩, 프로세싱 등으로 작업 속도 개선

5. Github 링크

https://github.com/GDSC-KNU/2nd-study-backend-1

profile
여러가지를 시도하는 학생입니다

0개의 댓글