[업무 자동화]/파이썬

[파이썬] CGV 영화정보 엑셀에 저장하기(feat. 건설업 부적합 정리)

시간 확보러 2024. 11. 3. 08:00
728x90

이미지, 개봉일, 예매율 등 CGV에 올라온 영화정보를 엑셀에 저장하는 실습이다.

 

건설업에서는 부적합 사진을 정리하는 일에 많은 시간이 소요된다.

이때 찍은 사진을 한 폴더에 넣고 일시 등의 정보를 가져올 수 있다면

많은 시간을 아낄 수 있을것으로 보인다.

 

 

CGV_무비차트.xlsx
0.22MB

 

□ 파이썬 코드

import requests
from bs4 import BeautifulSoup
import urllib.request as req
import os
import openpyxl
from openpyxl.drawing.image import Image
from PIL import Image as PILImage
book = openpyxl.Workbook()
sheet=book.active
code = requests.get("http://www.cgv.co.kr/movies/?lt=1&ft=0")
soup = BeautifulSoup(code.text, "html.parser")
title_elements = soup.select("strong.title")
image_elements = soup.select("span.thumb-image > img")
percent_elements = soup.select("strong.percent > span")
date_elements = soup.select("span.txt-info > strong")
folder_name = "./CGV 무비차트 포스터"
if not os.path.exists(folder_name):
    os.mkdir(folder_name)
num = 1
for title, image, percent, date in zip(title_elements, image_elements, percent_elements, date_elements):
    print(f"제목 : {title_elements}")
    print(f"예매율 : {percent.text}")
    print(f"개봉일 : {date.text.strip()[:10]}")
    img_url=image.attrs["src"]
    req.urlretrieve(img_url, f"{folder_name}/{num}.jpg")
    img = PILImage.open(f"{folder_name}/{num}.jpg")
    img_resized = img.resize((int(img.width * 0.3), int(img.height * 0.3)))
    img_resized.save(f"{folder_name}/{num}_resized.jpg")
    img.close()
    sheet.add_image(Image(f"{folder_name}/{num}_resized.jpg"), f"A{num}")
    sheet.cell(row=num, column=2).value=title.text
    sheet.cell(row=num, column=3).value=percent.text
    sheet.cell(row=num, column=4).value=date.text.strip()[:10]
    sheet.row_dimensions[num].height =197
    num +=1
    print("-----------------------------")
sheet.column_dimensions["A"].width = 23
sheet.column_dimensions["B"].width = 35
sheet.column_dimensions["C"].width = 15
sheet.column_dimensions["D"].width = 21
book.save("./CGV_무비차트.xlsx")

728x90