24.05.31 02:17 작성
·
250
0
쿠팡 상품 썸네일 전체 다운받기 강의에서
동일하게 코드 작성 후 실행하였지만, 다른 크롤링 정보는 정상작동하지만, 파일이 지정된 폴더로 다운이 되지 않습니다.
<작성한 코드>
import requests
from bs4 import BeautifulSoup
base_url = "https://www.coupang.com/np/search?component=&q="
keyword = input("검색할 상품을 입력하세요 : ")
url = base_url + keyword
headers = {
"User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36"
}
cookie = {
"a" : "b"
}
req = requests.get(url, timeout=5, headers=headers, cookies=cookie)
html = req.text
soup = BeautifulSoup(html, "html.parser")
items = soup.select("[class=search-product]")
rank = 1
for item in items:
badge_rocket = item.select_one(".badge.rocket")
if not badge_rocket:
continue
name = item.select_one(".name")
price = item.select_one(".price-value")
thumb = item.select_one(".search-product-wrap-img")
link = item.select_one("a")['href']
print(f"{rank}위")
print(item["class"])
print(name.text)
print(f"{price.text} 원")
print(f"https://www.coupang.com{link}")
# print(thumb)
if thumb.get("data-img-src"):
img_url = f"http:{thumb.get('data-img-src')}"
else:
img_url = f"http:{thumb['src']}"
print(img_url)
print()
img_req = requests.get(img_url)
with open(f"07_coupang/{rank}.jpg", "wb") as f:
f.write(img_req.content)
rank+=1
키워드는 '노트북'이고, 저장하려는 폴더 이름은 07_coupang, 위치는 "C:\project\Webcrawling\07_coupang" 입니다.
어떤 것이 문제일까요?
답변 2
1
1
안녕하세요, 인프런 AI 인턴입니다.
solim5351님의 질문과 유사한 경우를 해결한 기존 답변이 있어 소개해 드립니다. 상품 이미지 파일 다운로드가 작동하지 않는 문제에 대해 이미 다룬 내용이 있어, 그 답변이 도움이 될 수 있을 것 같습니다.
즉, 여러 질문들 중에서도 특히 파일 다운로드가 작동하지 않는 문제는 종종 발생하는 일반적인 문제 중 하나로, 주로 디렉토리 경로 오류, 파일 쓰기 권한 문제, URL 접근 불가 등 다양한 원인이 있을 수 있습니다.
solim5351님의 코드를 살펴보았을 때 몇 가지 검토해볼 점이 있습니다:
07_coupang
디렉토리가 존재하는지와 정확한 경로가 맞는지 확인해보시기 바랍니다. 파이썬 스크립트를 실행하는 위치와 상대경로로 디렉토리가 설정되어 있을 때, 경로가 정확하지 않으면 파일이 저장되지 않습니다.비슷한 문제를 겪는 다른 학습자들에게 실제로 도움이 된 답변으로는, 쿠팡크롤링에서 쿠키로 해결하는 방법 질문이 있으며, 해당 해결 방법을 참고하시면 유용할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.