小ネタです。 skiapp でホームページの画像をスクリーンショット保存(キャプチャ)して配信しているが、200サイトぐらいだから手動でも良いかなと思い始めて5サイト目ぐらいで「こりゃめんどい」と思い、スクリプトを書いたのでその記録。
方法
from selenium import webdriver
import chromedriver_binary
from PIL import Image
import time
def capture(filename, url):
save_path = "image/" + filename + ".png"
driver = webdriver.Chrome()
driver.get(url)
time.sleep(3)
w = driver.execute_script("return document.body.scrollWidth;")
h = driver.execute_script("return document.body.scrollHeight;")
driver.set_window_size(w, h)
driver.save_screenshot(save_path)
driver.quit()
img = Image.open(save_path)
resized_img = img.resize((500, round(img.height * 500 / img.width)), resample=Image.LANCZOS)
resized_img.save("image_resized/" + filename + ".png")
与えられたurlに対してHPにアクセスして画面キャプチャ、 image フォルダに画像を image_resize フォルダに横幅500pxにリサイズしたものを保存。
完全に小ネタでした。