[Python] 나도코딩 웹 스크래핑편 - (9) 다음 영화 이미지

Updated:

유튜브 나도코딩 웹 스크래핑 무료 강의를 통해 학습한 내용을 정리해서 올리고 있습니다.

실습과정에서 필요에 따라 일부 강의 내용의 누락 및 추가, 수정사항이 있습니다.

퀴즈의 경우, 유튜브 풀이와 상이할 수 있습니다.


다음 영화 이미지

import requests
from bs4  import BeautifulSoup

headers = {"User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36"}

# 다음 검색 영화순위 - 이미지 저장하기
for year in range(2015,2020):
    
    url = "https://search.daum.net/search?w=tot&q={}%EB%85%84%EC%98%81%ED%99%94%EC%88%9C%EC%9C%84&DA=MOR&rtmaxcoll=MOR".format(year)

    res = requests.get(url, headers=headers)
    res.raise_for_status()

    soup = BeautifulSoup(res.text, "lxml")

    images = soup.find_all("img", attrs={"class": "thumb_img"})

    for idx, img in enumerate(images):
        
        # 이미지 정보가 있는 url 지정
        image_url = img["src"]
        
        if image_url.startswith("//"): # startswith(): 00 단어로 시작하는 경우
            image_url = "https:" + image_url
        
        # 이미지 url을 다시 requests를 이용해 불러옴
        image_res = requests.get(image_url)
        image_res.raise_for_status()

        with open(f"./movie{year}년_{idx+1}위.jpg", "wb") as f:
            f.write(image_res.content) # content 정보를 사용

        if idx >=4:
            break
  • url은 다음 홈페이지에 yyyy년 영화 순위 검색 결과 링크를 사용하였고 여기선 2015 ~ 2019년 정보를 가져왔다.

  • startswith()를 사용한 이유는 어떤 링크는 https로 시작하고 어떤 링크는 //로 시작해서 형태를 맞춰주었다.

  • soup 객체에 content 속성을 사용해서 content 정보를 받아온 후 내 폴더에 이미지를 저장하였다.

Leave a comment