작성
·
385
0
안녕하세요 쿠팡 크롤링 100개 상품 출력 강의를 듣고 코드를 작성했는데요,
똑같이 작성을 해봐도 페이지만 숫자만 출력되고 안에 내용이 출력되지 않습니다 ㅠ
코드 한번만 확인 부탁드려도 될까요?
import requests
from bs4 import BeautifulSoup
import pyautogui
keyword = pyautogui.prompt("검색어를 입력하세요 >> ")
rank = 1
done = False
for page in range(1,5):
if done == True:
break
print(page, "번째 페이지 입니다.")
main_url = "https://www.coupang.com/np/search?&q={keyword}&page={page}"
coupang_header = {
'Host': 'www.coupang.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3',
}
response = requests.get(main_url, headers=coupang_header)
html = response.text
soup = BeautifulSoup(html, "html.parser")
links = soup.select("a.search-product-link")
for link in links:
if len(link.select("span.ad-badge-text")) > 0:
print("광고상품 입니다.")
else:
sub_url = "https://www.coupang.com/" + link.attrs['href']
response = requests.get(sub_url, headers=coupang_header)
html = response.text
soup = BeautifulSoup(html, "html.parser")
try:
brand_name = soup.select_one("a.prod-brand-name").text
except:
brand_name = ""
product_name = soup.select_one("h2.prod-buy-header__title").text
try:
product_price = soup.select_one("span.total-price > strong").text
except:
product_price =""
print(rank, brand_name, product_name, product_price)
rank = rank + 1
if rank > 100:
done = True
break
답변 1
1
안녕하세요 :)
디버깅을 해보니 오타가 있네요 ㅎㅎ
main_url = "https://www.coupang.com/np/search?&q={keyword}&page={page}"
main_url = f"https://www.coupang.com/np/search?&q={keyword}&page={page}"
f-string 으로 바꿔 주셔야 합니다.
감사합니다.