데이터분석 6기/본캠프

2025-05-30 경쟁사 분석/고이비토

seyeon1130 2025. 5. 30. 20:02

크롤링 가능 여부

 

우선 크롤링 전에 크롤링 해도 되는지 여부를 본다.

https://www.koibito.co.kr/robots.txt

여기 들어가서 보면

User-agent:* 
Allow:/
#20210222
User-agent : BLEXBot
Disallow : /

User-agent : SemrushBot
Disallow : /

User-agent : Bingbot
Disallow : /

User-agent : PetalBot
Disallow : /


Sitemap : https://www.koibito.co.kr/sitemap.xml

특정 사용자 말고는 다 허용 돼있음!!

우리는 크롤링 다 해도 된다~~~!

 

본격적으로 봐보기

https://www.koibito.co.kr/product_list.html?page=1&brand=Chanel

 

- 중고명품 고이비토

상품 목록

www.koibito.co.kr

우선 url을 보면 알 수 있듯, page =1과 브랜드는 샤넬.

이 두 파라미터들을 바꿔가면서 크롤링을 해야한다.

def get_koibito_brand_page_html(page: int, brand: str = "Chanel") -> str:
    """
    KOIBITO 브랜드 페이지의 HTML을 가져오는 함수

    Args:
        page (int): 페이지 번호
        brand (str): 브랜드 이름 (기본값: Chanel)

    Returns:
        str: 웹 페이지의 HTML 내용
    """
    url = "https://www.koibito.co.kr/product_list.html"
    params = {
        "page": page,
        "brand": brand
    }
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0'
    }

    try:
        response = requests.get(url, params=params, headers=headers)
        response.raise_for_status()  # 오류가 있으면 예외를 발생시킴
        return response.text
    except requests.exceptions.RequestException as e:
        print(f"페이지 {page} 요청 중 에러 발생: {e}")
        return ""

# 테스트: 첫 페이지 가져오기
html = get_koibito_brand_page_html(1, brand="Chanel")

우선 파라미터만 넣어서 페이지를 가져오는 함수만 생성함.

 

추출완료!

근데 현재 데이터랑 어떻게 엮을지를 못정해서 우선 보류