데이터분석 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")
우선 파라미터만 넣어서 페이지를 가져오는 함수만 생성함.
추출완료!
근데 현재 데이터랑 어떻게 엮을지를 못정해서 우선 보류