본문 바로가기
활동/개인 프로젝트

[scrapping] 페이지를 긁어보자. (2)_무신사추천상품

by dokii 2021. 7. 28.
728x90
반응형

무신사 반팔티 카테고리에서 무신사 추천순으로 나오는 해당 제품들의 정보를 긁어와 보자.

1. 브랜드명/상품명/가격을 가져와 보자.

2. 인덱스를 순위로 맞추고, 20위까지로 잘라보자.

 

1. 브랜드명/상품명/가격을 가져와 보자.

from bs4 import BeautifulSoup
from urllib.request import urlopen

#해당 url을 오픈합니다.
html=urlopen("https://search.musinsa.com/category/001001")
bsObject = BeautifulSoup(html, "html.parser")

print(bsObject)

#상품들의 정보가 담긴 li_box를 모두 가져옵니다.
item_list = bsObject.findAll('li',{'class':'li_box'})
print(item_list)

#

위의 코드로 해당 페이지의 html을 뜯어본후, 필요한 것들을 추려본다.

li라는 헤드의, class이름이 li_box인 것들을 모두 가져온다.

이때 findAll을 사용한다.

#빈리스트를 만들어 줍니다.
brand = []
name = []
price = []
number = []
number_box=0 #이걸로 순위를 카운트합니다.


for item in item_list:    
    
    #브랜드담기
    brand_box = item.findAll('p',{'class':'item_title'})
    if len(brand_box) == 1:
        #brand = brand_box[0].get_text()
        brand.append(brand_box[0].get_text())
    elif len(brand_box) == 2 :
        #brand =  brand_box[1].get_text()
        brand.append(brand_box[1].get_text())

        
    #상품명담기
    name_box = item.find('a', {'class':'img-block'}).get('title')
    print(name_box)
    name.append(name_box.strip())



    #가격 담기
    price_box = item.find('p',{'class':'price'}).get_text().split()
    if len(price_box) ==1 :
        price.append(price_box[0])
    elif len(price_box) ==2 :
        price.append(price_box[1])
    
    
    #순위담기
    number_box +=1
    number.append(str(number_box))

#잘담겼는지 확인
print (brand)
print (name)
print (price)

유의할점은,

findAll과 find의 역할이 다르다는 점이다.

findAll로 태그를 불러오면, index추출이 안되는것 같다...

 

<결과>

2. 20위까지의 상품만을 노출해보자.

  2-1. 데이터 프레임으로 본 결과물을 뽑아보자.

##데이터정제
import pandas as pd

data={'순위':number, '브랜드':brand, '상품명':name, '가격'+'('+'할인가'+')':price}

df=pd.DataFrame(data)

df

#index를 순위로 바꾸기.
df2 =df.set_index("순위")
df2

 

  2-2. 20위 까지만 자르기

#20위까지만 자르기
df.loc[0:19]

##위에 만들어놓은 df2로 자르면 안될까?
df2.loc[1:20]

다음과 같은오류가 난다.

##그래서 이렇게 해주었다.
df3=df.loc[0:19]
df3=df3.set_index("순위")
df3

 

 

파일명 : musinsa_scrapping_3


참고한블로그

 

1. 데이터프레임 인덱스조작-데이터 사이언스 스쿨

 https://datascienceschool.net/01%20python/04.05%20%EB%8D%B0%EC%9D%B4%ED%84%B0%ED%94%84%EB%A0%88%EC%9E%84%20%EC%9D%B8%EB%8D%B1%EC%8A%A4%20%EC%A1%B0%EC%9E%91.html

 

2. 크롤링

https://koosco.tistory.com/41?category=837890 

 

728x90
반응형

'활동 > 개인 프로젝트' 카테고리의 다른 글

[scrapping] 페이지를 긁어보자. (1)  (0) 2021.07.22

댓글