BeautifulSoup4 활용3

몽자비루 ㅣ 2023. 4. 23. 12:48

<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 상태 그대로 저장되어 있음.
                                      즉, 이미지 등의 미디어 파일을 받고자할 때 사용함

'python > python_selenium' 카테고리의 다른 글

Selenium 기본  (0) 2023.04.25
CSV 기본  (0) 2023.04.23
BeautifulSoup4 활용2  (0) 2023.04.22
BeautifulSoup4 활용1  (0) 2023.04.19
BeautifulSoup4 기본  (0) 2023.04.18