<2018~2022 년 1~5순위 포스터 가져오기>
# 다음 영화 이미지 2018~2022 년 1~5순위 포스터 가져오기
import requests
from bs4 import BeautifulSoup
import lxml
for year in range (2018, 2023):
url = "<https://search.daum.net/search?w=tot&q="+str(year)+"%EB%85%84%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&DA=MOR&rtmaxcoll=MOR>"
res = requests.get(url)
res.raise_for_status()
soup = BeautifulSoup(res.text, "lxml")
images = soup.find_all("img", attrs={"class":"thumb_img"})
for idx,image in enumerate(images):
image_url = image["src"]
# image_url 가 `//`로 시작하면 앞에 https: 추가.
if image_url.startswith("//"):
image_url = "https:"+image_url
# 이미지 url에 접속 후 페이지의 정보를 파일로 저장하기 위해 새로 접속.
image_res = requests.get(image_url)
image_res.raise_for_status()
with open("movie{}_{}.jpg".format(year,idx+1), "wb") as f:
# image_res가 가지고 있는 content 정보를 바로 파일로 씀
f.write(image_res.content)
if idx >=4:
break
- 이미지 url 가져온 뒤 image_res를 사용해 새로 접속함
- with open (”파일명”, “wb”) as f: f.write(requests.content) = 파일명으로 url의 파일을 저장.
- requets.content를 사용해 이미지 파일로 저장할 수 있음.
ㄴ requests.text : HTTP Request를 보낸 URL에서 읽을 수 있는 내용을 가져올 때 사용
인코딩을 추측하고 인코딩 값으로 디코드한 값으로, 한번 가공됨(원본 X)
ㄴ requests.content : HTTP Request의 body부분이 bytes 상태 그대로 저장되어 있음.
즉, 이미지 등의 미디어 파일을 받고자할 때 사용함