import requests
import re # 정규식 관련 패키지
from bs4 import BeautifulSoup
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"}
for i in range(1, 6):
print("페이지 :", i)
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={}&rocketAll=false&searchIndexingToken=&backgroundColor=".format(i)
res = requests.get(url, headers = headers)
res.raise_for_status()
soup = BeautifulSoup(res.text, "lxml")
# li element 중에서 class가 search-product로 시작하는 모든 li element를 가져온다.
items = soup.find_all("li", attrs={"class":re.compile("^search-product")})
for item in items:
# 광고 제품은 제외
ad_badge = item.find("span", attrs={"class":"ad-badge-text"})
if ad_badge:
continue
name = item.find("div", attrs={"class":"name"}).get_text() # 제품명
if "Apple" in name:
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:
continue
link = item.find("a", attrs={"class":"search-product-link"})["href"]
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] # (중괄호 제거)
else:
rate_cnt = "평점 수 없음"
continue
if float(rate) >= 4.5 and int(rate_cnt) >=100:
print(f"제품명 : {name}")
print(f"가격 : {price}")
print(f"평점 : {rate} ({rate_cnt})")
print("바로가기 : {}".format("https://www.coupang.com" + link))
print("-"*100)
[파이썬 웹 스크래핑] selenium 명령어 TERMINAL 창에서 실행 - 8 (0) | 2020.09.06 |
---|---|
[파이썬 웹 스크래핑] selenium 및 google webdriver 설치 - 7 (0) | 2020.09.05 |
[파이썬 웹 스크래핑] Beautifulsoup4 (쿠팡 노트북) - 5 (0) | 2020.09.03 |
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 4 (0) | 2020.09.02 |
[파이썬 웹 스크래핑] Beautifulsoup4 (네이버 웹툰) - 3 (0) | 2020.09.01 |
댓글 영역