見出し画像

Pythonで自動でページを切り替えて、スクショを撮り続けるコード書いてみた

タイトル通り、自動で毎ページごとにスクショを撮るコードを書いてみました。Webページや電子書籍など大量にページ数があるけれど、オフラインでも見たいと思ったのがコード作成のきっかけです。
※購入した電子書籍などをスクショして、他者に販売するなどは確実にアウトだと思うので自己責任でお願いします。


一応Jupyter Notebookで動作確認できました。
まずは、pip install等で以下のモジュールをインストールしてください。

!pip install pyobjc
!pip install pyobjc-core
!pip install pyautogui


早速コードの紹介です。
まずは、ページ送りに使うスクロールバーやページ切り替えコマンドの座標を取得します。座標を調べたい位置までカーソルを持っていって、実装するだけです。

import pyautogui as pg
from time import sleep

#ページ送り用左クリック座標、電子書籍の座標をこれで取得
print(pg.position())


次に、ページ送りとスクショのコード。座標は適当に入れてますので適宜変更お願いします。

#rangeの引数にページ数を入力
for a in range(5) : 
   #スクショ : 電子書籍のページ範囲を(左端のx座標,左端のy座標,幅,高さ)で指定
   page = pg.screenshot(region=(300, 200, 300, 300)) 
   
   #ページ送り用左クリック : ページ送りボタン座標を指定
   pg.click(x=400, y=400)
   #保存名指定
   SaveName = 'page' + str(a+1) + '.png' 
   
   #保存
   page.save(SaveName) 
   #1秒待機
   sleep(1)


こんな感じで簡単に実装できちゃいました。




この記事が気に入ったらサポートをしてみませんか?