본문 바로가기
Python

python - 네이버 쇼핑 web Scraping

by le_piee 2020. 11. 1.

먼저 개발 환경입니다.

 

 python은 3.9.0

 pip는 20.2.3을 사용했습니다.

 

 

pip install requests

pip install bs4

 

두개의 라이브러리를 다운로드 합니다.

 

 

 

import requests
from bs4 import BeautifulSoup

#스크래핑 할 URL
NAVER_BEST100 = 'https://search.shopping.naver.com/best100v2/main.nhn'

#저장 할 TOP 10 배열
popular10lists =[]

#카테고리
categories =['인기검색','패션의류','패션잡화','화장품/미용','디지털/가전','가구/인테리어','식품','스포츠/레저','출산/육아','생활/건강']

#URL에서 데이터를 가져옴
source = requests.get(NAVER_BEST100).text
#bs를 이용하여 html 형식으로 바꿔줌
soup = BeautifulSoup(source,"html.parser")

#그 중에 p 태그의 ymd라는 클래스를 가진 것을 가져오기
ymd = soup.select("p.ymd")

# p태그의 ymd 클래스를 가져 와서 .을 떼고 출력 (YYYYMMdd)
print(ymd[0].text.replace('.',''))

#html 문서 중에서 id 가 popular_srch_lst 인 것을 찾기
popular10 = soup.find(id="popular_srch_lst")
#그 중에 txt만 가져오기
popular10names = popular10.select(".txt")

#top 10 검색어
#for문을 돌면서 배열에 저장
for name in popular10names:
    popular10lists.append(name.text)

print(popular10lists)


# 종목 별 인기순위
#ul 태그의 type_normal이라는 클래스를 가진 것을 가져옴
categorieslists = soup.select("ul.type_normal") 
for idx, category in enumerate(categorieslists): #enumerate는 리스트 원소에 순서를 부여해주는 함수임
    for i, item in enumerate(category.find_all("img")):
        name=item.get('alt')
        href=item.get('data-original')
        print(categories[idx], i,name,href)

 


실행 결과

 

 

 

감사합니다.