name = item.find("div", attrs={"class":"name"}).get_text() # 제품명
price = item.find("strong", attrs={"class":"price-value"}).get_text() # 가격
rate = item.find("em", attrs={"class":"rating"}) # 평점
rate_cnt = item.find("span", attrs={"class":"rating-total-count"}) #평점 수
ad_badge = item.find("span", attrs={"class":"ad-badge-text"}) # 광고 상품
import requests
import re # 정규식 관련 패키지
from bs4 import BeautifulSoup
url = "https://www.coupang.com/np/search?q=%EB%85%B8%ED%8A%B8%EB%B6%81&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page=1&rocketAll=false&searchIndexingToken=&backgroundColor="
headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"}
res = requests.get(url, headers = headers)
res.raise_for_status()
soup = BeautifulSoup(res.text, "lxml")
# print(res.text)
# li element 중에서 class가 search-product로 시작하는 모든 li element를 가져온다.
items = soup.find_all("li", attrs={"class":re.compile("^search-product")})
# print(items[0].find("div", attrs={"class":"name"}).get_text())
for item in items:
# 광고 제품은 제외
ad_badge = item.find("span", attrs={"class":"ad-badge-text"})
if ad_badge:
# print("---<광고 상품 제외합니다>---")
continue
name = item.find("div", attrs={"class":"name"}).get_text() # 제품명
if "레노버" in name:
print("---<레노버 제품은 제외합니다>---")
continue
price = item.find("strong", attrs={"class":"price-value"}).get_text() # 가격
# 리뷰 100개 이상, 평점 4.5 이상 되는 것만 조회
rate = item.find("em", attrs={"class":"rating"}) # 평점
if rate:
rate = rate.get_text()
else:
# print("--- <평점 없는 상품은 제외합니다> ---")
continue
rate_cnt = item.find("span", attrs={"class":"rating-total-count"}) #평점 수
if rate_cnt:
rate_cnt = rate_cnt.get_text() # 예 : (26)
rate_cnt = rate_cnt[1:-1] # (중괄호 제거)
# print("리뷰 수", rate_cnt)
else:
rate_cnt = "평점 수 없음"
# print("---<평점 수 없는 제품은 제외합니다>---")
continue
if float(rate) >= 4.5 and int(rate_cnt) >=50:
print(name, price, rate, rate_cnt)
# 제품명 : 삼성전자 갤럭시북 이온 노트북 NT930XCJ-K716A 아우라 실버 (i7-10510U 33.7cm), NVMe 512GB, 16GB, WIN10 Home
# 가격 : 1,855,610
# 평점 : 4.0
# 평점 수 : (18)
[파이썬 웹 스크래핑] selenium 및 google webdriver 설치 - 7 (0) | 2020.09.05 |
---|---|
[파이썬 웹 스크래핑] Beautifulsoup4 (쿠팡 노트북) - 6 (0) | 2020.09.04 |
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 4 (0) | 2020.09.02 |
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 3 (0) | 2020.09.01 |
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 2 (0) | 2020.08.31 |
댓글 영역