이미지, 개봉일, 예매율 등 CGV에 올라온 영화정보를 엑셀에 저장하는 실습이다.
건설업에서는 부적합 사진을 정리하는 일에 많은 시간이 소요된다.
이때 찍은 사진을 한 폴더에 넣고 일시 등의 정보를 가져올 수 있다면
많은 시간을 아낄 수 있을것으로 보인다.
□ 파이썬 코드
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")
'[업무 자동화] > 파이썬' 카테고리의 다른 글
[파이썬] 뉴스 기사 수집하기(feat. 코드 포함) (2) | 2024.10.27 |
---|---|
[파이썬] 네이버 지식인 여러페이지 수집하기(feat. 코드 포함) (2) | 2024.10.20 |
[파이썬] 네이버 연관검색어 수집하기(feat. 코드 포함) (2) | 2024.10.13 |
[파이썬] 네이버 환율정보 수집하기(feat. 코드 포함) (2) | 2024.10.06 |
[파이썬] 무비 차트 수집하기(feat. 코드 포함) (2) | 2024.09.29 |