inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

네이버쇼핑(닭가슴살) 심화 - 구매건수 추출

96

m_r_n

작성한 질문수 5

0

안녕하세요~ 네이버쇼핑(닭가슴살) 과제 심화로 구매건수를 추출하고 있는데,

강의에서는 구매건수만 별도로 추출하는 것으로 나와서

한번 상품명,링크,가격,구매건수를 같이 추출해보려고 하고 있거든요.

 

이렇게 짜니, 자꾸 모든 상품의 구매건수가 똑같은 숫자로 나오는데,

원인이 무엇일까요?

 

products = soup.select(".product_item__KQayS")

# 상품명, 상세페이지링크, 가격, 구매건수수 추출하기
for product in products:
    # 상품명
    name = product.select_one(".product_title__ljFM_").text
    # 상세페이지 링크
    link =  product.select_one(".product_title__ljFM_>a").attrs['href']
    # 가격
    price = product.select_one(".price_num__Y66T7").text.split('원')[0].replace(',','')
    # 구매건수
    if soup.select_one("[data-shp-area*=purchase] em"):
        bought = soup.select_one("[data-shp-area*=purchase] em").text.replace(',','')
        if '만' in bought:
            bought = int(float(bought.split('만')[0])*10000)
    else :
        bought = ''
    
    print(name, link, price, bought)

    data.append([name, link, price, bought])

python 웹-크롤링

답변 2

0

스타트코딩

AI인턴이 잘 캐치해줬네요!
soup를 product로 바꾸어 주시면 될겁니다 ㅎㅎ

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다. m_r_n님.

네이버 쇼핑 크롤링 과제에서 각 상품의 구매 건수를 추출하는 작업을 진행 중이시군요. 현재 코드에서는 모든 상품의 구매 건수를 동일하게 출력하는 문제가 발생하고 있는 것 같습니다. 이 문제는 구매 건수를 추출하는 코드를 각 product 객체 내에서 실행하지 않고, 전체 페이지 soup에서 동일한 위치의 요소를 선택하고 있기 때문입니다.

아래와 같이 코드를 수정해 보세요:

products = soup.select(".product_item__KQayS")

# 상품명, 상세페이지링크, 가격, 구매건수수 추출하기
for product in products:
    # 상품명
    name = product.select_one(".product_title__ljFM_").text
    # 상세페이지 링크
    link = product.select_one(".product_title__ljFM_>a").attrs['href']
    # 가격
    price = product.select_one(".price_num__Y66T7").text.split('원')[0].replace(',', '')
    # 구매건수
    purchase_info = product.select_one("[data-shp-area*=purchase] em")
    if purchase_info:
        bought = purchase_info.text.replace(',', '')
        if '만' in bought:
            bought = int(float(bought.split('만')[0]) * 10000)
    else:
        bought = ''

    print(name, link, price, bought)
    data.append([name, link, price, bought])

수정된 코드에서는 할인 가격, 구매 건수 등의 정보를 개별 product에서 추출함으로써 각 상품에 맞는 정보를 가져올 수 있도록 합니다.

추가로 도움이 될 수 있는 자료를 안내해 드립니다:
- 네이버쇼핑 질문 있습니다!: 비슷한 문제를 경험한 수강생의 질문입니다.
- 코드한번 확인 요청드립니다.: 네이버 쇼핑에서 데이터 추출 시 발생할 수 있는 문제와 해결법을 다룹니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

셀레니움 환경설정 오류

0

52

2

네이버 로그인 관련

0

282

2

안녕하세요 셀레니움에 대해서 질문

0

89

1

크롤링 연습사이트 문의

0

102

2

선택자 질문

0

74

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

78

2

자동 로그인 질문

0

90

2

44강 제목, 링크

0

107

1

원하는 값이 없을 때

0

91

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

230

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

100

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

91

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

102

1

조건문 else 사용하지 않는 이유

0

77

2

셀레니움으로 접근할 수 없는 경우

0

97

2

웹페이지 변경

0

75

2

자바스크립트로 태그 선택 시 질문입니다.

1

65

2

수료증은 어떻게 받나요?

0

122

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

61

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

202

2