ðž PyAutoGUI ã¹ã¯ãªãŒã³ã·ã§ãã
ð ã¯ããã«
PyAutoGUIã§ã¯ãçŸåšã®ç»é¢ãã¹ã¯ãªãŒã³ã·ã§ãããšããŠååŸã§ããŸãã
ååŸããã¹ã¯ãªãŒã³ã·ã§ããã¯ã次ã®ãããªçšéã«å©çšã§ããŸãã
- æäœçµæã®èšé²
- ãšã©ãŒçºçæã®ç»é¢ä¿å
- 宿çãªç»é¢ååŸ
- ç»åèªèã«äœ¿çšããæ€çŽ¢ç»åã®äœæ
- èªååŠçãæ£åžžã«å®äºããããšã®ç¢ºèª
ãã®èšäºã§ã¯ãç»é¢å šäœã®ä¿åããç¯å²æå®ãæ¥æä»ããã¡ã€ã«åãé£ç¶æ®åœ±ãŸã§ãã¹ã¯ãªãŒã³ã·ã§ããæ©èœã®åºæ¬çãªäœ¿ãæ¹ã説æããŸãã
ðŠ PyAutoGUIã®èªã¿èŸŒã¿
æåã«PyAutoGUIãã€ã³ããŒãããŸãã
import pyautogui
ã¹ã¯ãªãŒã³ã·ã§ããããã¡ã€ã«ãšããŠä¿åããã ãã§ããã°ãåºæ¬çã«ã¯ããã ãã§å©çšã§ããŸãã
ð¥ïž ç»é¢å šäœãååŸãã
ç»é¢å
šäœã®ã¹ã¯ãªãŒã³ã·ã§ããã¯screenshot()ã§ååŸããŸãã
import pyautogui
image = pyautogui.screenshot()
ååŸããç»åã¯image倿°ã«æ ŒçŽãããŸãã
ãã®æç¹ã§ã¯ãç»åã¯ãŸã ãã¡ã€ã«ãšããŠä¿åãããŠããŸããã
screenshot()ã®æ»ãå€ã¯Pillowã®Imageãªããžã§ã¯ãã§ããååŸåŸã«ä¿åããããåãæããããç»ååŠçãžæž¡ãããã§ããŸãã
ðŸ ã¹ã¯ãªãŒã³ã·ã§ãããä¿åãã
screenshot()ãžãã¡ã€ã«åãæž¡ããšãååŸãšä¿åãåæã«è¡ããŸãã
import pyautogui
pyautogui.screenshot("screenshot.png")
Pythonãã¡ã€ã«ãå®è¡ããå Žæã«ã次ã®ãã¡ã€ã«ãäœæãããŸãã
screenshot.png
ç»åãªããžã§ã¯ããååŸããªããä¿åããããšãã§ããŸãã
import pyautogui
image = pyautogui.screenshot("screenshot.png")
print(image.size)
ð ä¿åå ãæå®ãã
ãã©ã«ããå«ããã¹ãæå®ãããšãä»»æã®å Žæãžä¿åã§ããŸãã
import pyautogui
pyautogui.screenshot(
"screenshots/screenshot.png"
)
ãã ããä¿åå ã®ãã©ã«ããååšããªãå Žåã¯ãšã©ãŒã«ãªããŸãã
PyAutoGUIã¯ãæå®ããä¿åå ãã©ã«ããèªåã§ã¯äœæããŸãããå ã«ãã©ã«ããäœæããŠããå¿ èŠããããŸãã
ð ä¿åå ãã©ã«ããèªåäœæãã
pathlibã䜿çšãããšãä¿åå
ãã©ã«ãããªãå Žåã«èªåäœæã§ããŸãã
from pathlib import Path
import pyautogui
output_dir = Path("screenshots")
output_dir.mkdir(
parents=True,
exist_ok=True
)
output_path = output_dir / "screenshot.png"
pyautogui.screenshot(
str(output_path)
)
mkdir()ã®åŒæ°ã«ã¯æ¬¡ã®æå³ããããŸãã
| åŒæ° | æå³ |
|---|---|
parents=True |
äžäœãã©ã«ããå¿ èŠã«å¿ããŠäœæãã |
exist_ok=True |
ãã©ã«ãããã§ã«ååšããŠããšã©ãŒã«ããªã |
ã¹ã¯ãªãŒã³ã·ã§ãããèªåä¿åããã¹ã¯ãªããã§ã¯ãpathlibã䜿ã£ãŠä¿åå ãã©ã«ããæºåããŠãããšå®å šã§ãã
âïž ç»é¢ã®äžéšåã ããååŸãã
ç»é¢å šäœã§ã¯ãªããæå®ããç¯å²ã ããæ®åœ±ã§ããŸãã
import pyautogui
pyautogui.screenshot(
"partial.png",
region=(100, 200, 800, 600)
)
regionã«ã¯ã次ã®é çªã§å€ãæå®ããŸãã
(left, top, width, height)
ãã®äŸã§ã¯ã次ã®ç¯å²ãååŸããŸãã
| é ç® | å€ |
|---|---|
| 巊端ã®Xåº§æš | 100 |
| äžç«¯ã®Yåº§æš | 200 |
| å¹ | 800 |
| é«ã | 600 |
å³ç«¯ãšäžç«¯ã®åº§æšãæå®ããã®ã§ã¯ãªããå·Šäžã®åº§æšãšç»åã®å€§ãããæå®ããŸãã
ç»é¢å·Šäžã座æš(0, 0)ã§ããå³ãžé²ãã»ã©X座æšãå¢ããäžãžé²ãã»ã©Y座æšãå¢ããŸãã
ð æ®åœ±ç¯å²ã®åº§æšã調ã¹ã
çŸåšã®ããŠã¹ã«ãŒãœã«ã®åº§æšã¯position()ã§ç¢ºèªã§ããŸãã
import pyautogui
x, y = pyautogui.position()
print(x, y)
æ®åœ±ãããç¯å²ã®å·Šäžãšå³äžãžããŠã¹ãç§»åããããããã®åº§æšã確èªãããšç¯å²ã決ããããŸãã
å³äžã®åº§æšãåãã£ãŠããå Žåã¯ãå¹ ãšé«ããæ¬¡ã®ããã«æ±ããŸãã
left = 100
top = 200
right = 900
bottom = 800
width = right - left
height = bottom - top
print(width, height)
çµæã¯æ¬¡ã®ããã«ãªããŸãã
800 600
ãã®å€ãregionãžæå®ããŸãã
region = (
left,
top,
width,
height
)
pyautogui.screenshot(
"partial.png",
region=region
)
ð ããŠã¹åº§æšãé£ç¶è¡šç€ºãã
æ®åœ±ç¯å²ã調ã¹ãå Žåã¯ãããŠã¹åº§æšãé£ç¶è¡šç€ºãããšäŸ¿å©ã§ãã
import time
import pyautogui
try:
while True:
x, y = pyautogui.position()
print(
f"\rX={x:4d}, Y={y:4d}",
end=""
)
time.sleep(0.1)
except KeyboardInterrupt:
print("\nçµäºããŸããã")
å®è¡äžã«ããŠã¹ãåãããšãçŸåšäœçœ®ãæŽæ°ãããŸãã
çµäºãããšãã¯ãã¿ãŒããã«äžã§Ctrl+CãæŒããŸãã
â³ æ°ç§åŸã«æ®åœ±ãã
ã¹ã¯ãªãããå®è¡ããããšãæ®åœ±ãããç»é¢ãžåãæ¿ããæéãå¿ èŠãªå ŽåããããŸãã
time.sleep()ã䜿çšãããšãæ®åœ±åã«åŸ
æ©ã§ããŸãã
import time
import pyautogui
time.sleep(5)
pyautogui.screenshot(
"screenshot.png"
)
ãã®äŸã§ã¯ãã¹ã¯ãªãããå®è¡ããŠãã5ç§åŸã«æ®åœ±ããŸãã
ð¢ ã«ãŠã³ãããŠã³ããŠããæ®åœ±ãã
æ®åœ±ãŸã§ã®æ®ãæéã衚瀺ãããšãç»é¢ãæºåãããããªããŸãã
import time
import pyautogui
for remaining in range(5, 0, -1):
print(
f"{remaining}ç§åŸã«æ®åœ±ããŸãã"
)
time.sleep(1)
pyautogui.screenshot(
"screenshot.png"
)
print("æ®åœ±ããŸããã")
æåã§ç»é¢ãæºåããŠæ®åœ±ããå Žåã¯ãæ°ç§ã®ã«ãŠã³ãããŠã³ãå ¥ãããšæäœãããããªããŸãã
ð æ¥æããã¡ã€ã«åã«å ¥ãã
æ¯ååããã¡ã€ã«åã§ä¿åãããšã以åã®ç»åãäžæžããããŸãã
æ®åœ±æ¥æããã¡ã€ã«åã«å«ãããšãç»åãæ®ããŠãããŸãã
from datetime import datetime
import pyautogui
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
filename = (
f"screenshot_{timestamp}.png"
)
pyautogui.screenshot(filename)
print(filename)
äŸãã°ã次ã®ãããªãã¡ã€ã«åã§ä¿åãããŸãã
screenshot_20260806_101530.png
䜿çšããŠããæžåŒã®æå³ã¯æ¬¡ã®ãšããã§ãã
| æžåŒ | æå³ |
|---|---|
%Y |
西æŠ4æ¡ |
%m |
æ |
%d |
æ¥ |
%H |
æ |
%M |
å |
%S |
ç§ |
ðïž æ¥æä»ãã§æå®ãã©ã«ããžä¿åãã
å®çšçã«ã¯ãä¿åå ãã©ã«ãã®äœæã𿥿ä»ããã¡ã€ã«åãçµã¿åãããŸãã
from datetime import datetime
from pathlib import Path
import pyautogui
output_dir = Path("screenshots")
output_dir.mkdir(
parents=True,
exist_ok=True
)
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
output_path = output_dir / (
f"screenshot_{timestamp}.png"
)
pyautogui.screenshot(
str(output_path)
)
print(
f"ä¿åããŸãã: {output_path}"
)
èªåä¿åã§ã¯ãä¿åå ãã©ã«ãã®äœæã𿥿ä»ããã¡ã€ã«åãçµã¿åããããšãäžæžããé²ããªããç»åãæŽçã§ããŸãã
ðŒïž ååŸããç»åãããšããä¿åãã
screenshot()ã§ååŸããç»åã¯ãsave()ã䜿ã£ãŠããšããä¿åã§ããŸãã
import pyautogui
image = pyautogui.screenshot()
image.save(
"screenshot.png"
)
ãã®æžãæ¹ã¯ãä¿ååã«ç»åãå å·¥ãããå Žåã«äŸ¿å©ã§ãã
âïž ååŸåŸã«ç»åãåãæã
ååŸããç»åã¯Pillowã®Imageãªããžã§ã¯ããªã®ã§ãcrop()ã§åãæããŸãã
import pyautogui
image = pyautogui.screenshot()
cropped = image.crop(
(100, 200, 900, 800)
)
cropped.save(
"cropped.png"
)
crop()ã§ã¯ã次ã®é çªã§åº§æšãæå®ããŸãã
(left, top, right, bottom)
ããã¯screenshot()ã®regionãšã¯æå®æ¹æ³ãç°ãªããŸãã
| æ©èœ | æå®æ¹æ³ |
|---|---|
screenshot(region=...) |
å·Šãäžãå¹ ãé«ã |
image.crop(...) |
å·Šãäžãå³ãäž |
regionãšcrop()ã§ã¯ãç¯å²ã®æå®æ¹æ³ãç°ãªããŸããå¹ ã»é«ããšå³ç«¯ã»äžç«¯ãåãéããªãããæ³šæããŠãã ããã
ð ç»åã®ãµã€ãºã確èªãã
ååŸããç»åã®å¹
ãšé«ãã¯sizeã§ç¢ºèªã§ããŸãã
import pyautogui
image = pyautogui.screenshot()
width, height = image.size
print(
f"å¹
: {width}px"
)
print(
f"é«ã: {height}px"
)
ç»é¢å šäœãååŸããå Žåã¯ãéåžžã䜿çšããŠããç»é¢ã®è§£å床ã«å¯Ÿå¿ããå€ã衚瀺ãããŸãã
ðš ç»åã®ç¹å®äœçœ®ã®è²ãååŸãã
ç»åå
ã®æå®åº§æšã®è²ã¯getpixel()ã§ååŸã§ããŸãã
import pyautogui
image = pyautogui.screenshot()
color = image.getpixel(
(500, 300)
)
print(color)
RGBç»åã®å Žåãæ¬¡ã®ãããªå€ãåŸãããŸãã
(255, 255, 255)
ãã®äŸã§ã¯ãèµ€ã»ç·ã»éããã¹ãŠ255ãªã®ã§çœè²ã§ãã
ãã®æ©èœãå©çšãããšãç»é¢äžã®ç¹å®äœçœ®ã®è²ãå€ãã£ããã©ãããå€å®ã§ããŸãã
ð ç»é¢äžã®è²ãçŽæ¥ååŸãã
PyAutoGUIã®pixel()ã䜿çšãããšãã¹ã¯ãªãŒã³ã·ã§ããå
šäœã倿°ãžä¿åããã«ãæå®äœçœ®ã®è²ãååŸã§ããŸãã
import pyautogui
color = pyautogui.pixel(
500,
300
)
print(color)
ç¹å®äœçœ®ãæåŸ
ããè²ãã©ããã¯pixelMatchesColor()ã§ç¢ºèªã§ããŸãã
import pyautogui
matched = pyautogui.pixelMatchesColor(
500,
300,
(255, 255, 255)
)
print(matched)
äžèŽããå Žåã¯TrueãäžèŽããªãå Žåã¯Falseã«ãªããŸãã
è²ã«å€å°ã®éãã蚱容ããå Žåã¯toleranceãæå®ããŸãã
matched = pyautogui.pixelMatchesColor(
500,
300,
(255, 255, 255),
tolerance=10
)
ãã¿ã³ã®æå¹ã»ç¡å¹ãåŠçå®äºãè²ã§å€å®ã§ããç»é¢ã§ã¯ãç»åèªèãããç¹å®åº§æšã®è²ã確èªããæ¹ãç°¡åãªå ŽåããããŸãã
ð äžå®ééã§é£ç¶æ®åœ±ãã
äžå®æéããšã«ã¹ã¯ãªãŒã³ã·ã§ãããä¿åã§ããŸãã
import time
from datetime import datetime
from pathlib import Path
import pyautogui
output_dir = Path("screenshots")
output_dir.mkdir(
parents=True,
exist_ok=True
)
interval = 10
try:
while True:
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
output_path = output_dir / (
f"screenshot_{timestamp}.png"
)
pyautogui.screenshot(
str(output_path)
)
print(
f"ä¿åããŸãã: {output_path}"
)
time.sleep(interval)
except KeyboardInterrupt:
print("æ®åœ±ãçµäºããŸããã")
ãã®äŸã§ã¯ã10ç§ããšã«ç»é¢å šäœãä¿åããŸãã
ã¿ãŒããã«ã§Ctrl+CãæŒããšçµäºããŸãã
çãééã§é£ç¶æ®åœ±ãããšã倧éã®ç»åãäœæãããã¹ãã¬ãŒãžå®¹éãæ¶è²»ããŸããæ®åœ±ééãšä¿åæéãäºåã«æ±ºããŠãã ããã
ð¢ æ®åœ±åæ°ãæå®ãã
ç¡æéã§ã¯ãªããæå®åæ°ã ãæ®åœ±ããããšãã§ããŸãã
import time
from datetime import datetime
from pathlib import Path
import pyautogui
output_dir = Path("screenshots")
output_dir.mkdir(
parents=True,
exist_ok=True
)
capture_count = 5
interval = 10
for number in range(
1,
capture_count + 1
):
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
output_path = output_dir / (
f"screenshot_{number:03d}_"
f"{timestamp}.png"
)
pyautogui.screenshot(
str(output_path)
)
print(
f"{number}/{capture_count}: "
f"{output_path}"
)
if number < capture_count:
time.sleep(interval)
次ã®ãããªãã¡ã€ã«åã§ä¿åãããŸãã
screenshot_001_20260806_101500.png
screenshot_002_20260806_101510.png
screenshot_003_20260806_101520.png
ðª ç¹å®ã®ãŠã£ã³ããŠç¯å²ãæ®åœ±ãã
PyAutoGUIã®screenshot()ã¯ããŠã£ã³ããŠåãçŽæ¥æå®ããŠæ®åœ±ããæ©èœã§ã¯ãããŸããã
Windowsã§ã¯ãPyGetWindowãå©çšããŠãŠã£ã³ããŠã®äœçœ®ãšå€§ãããååŸãããã®ç¯å²ãregionãžæž¡ãæ¹æ³ããããŸãã
æåã«PyGetWindowãã€ã³ã¹ããŒã«ããŸãã
pip install pygetwindow
次ã®äŸã§ã¯ãã¿ã€ãã«ã«ãã¡ã¢åž³ããå«ããŠã£ã³ããŠãæ®åœ±ããŸãã
import pyautogui
import pygetwindow
windows = pygetwindow.getWindowsWithTitle(
"ã¡ã¢åž³"
)
if not windows:
print(
"察象ã®ãŠã£ã³ããŠã"
"èŠã€ãããŸããã§ããã"
)
else:
window = windows[0]
region = (
window.left,
window.top,
window.width,
window.height
)
pyautogui.screenshot(
"notepad.png",
region=region
)
print("æ®åœ±ããŸããã")
ãŠã£ã³ããŠã¿ã€ãã«ã¯ãéããŠãããã¡ã€ã«åãã¢ããªã±ãŒã·ã§ã³ã®ç¶æ ã«ãã£ãŠå€ããããšããããŸãã
ðª ãŠã£ã³ããŠãåé¢ã«ããŠããæ®åœ±ãã
察象ãŠã£ã³ããŠãã»ãã®ãŠã£ã³ããŠã«é ããŠããå Žåã¯ããã®ãŸãŸã§ã¯é ããç¶æ ãæ®åœ±ãããŸãã
æ®åœ±åã«å¯Ÿè±¡ãåé¢ãžç§»åããŸãã
import time
import pyautogui
import pygetwindow
windows = pygetwindow.getWindowsWithTitle(
"ã¡ã¢åž³"
)
if not windows:
print(
"察象ã®ãŠã£ã³ããŠã"
"èŠã€ãããŸããã§ããã"
)
else:
window = windows[0]
if window.isMinimized:
window.restore()
window.activate()
time.sleep(1)
region = (
window.left,
window.top,
window.width,
window.height
)
pyautogui.screenshot(
"notepad.png",
region=region
)
PyAutoGUIã¯ãç»é¢äžã«å®éã«è¡šç€ºãããŠããå å®¹ãæ®åœ±ããŸãã察象ãŠã£ã³ããŠãæå°åãããŠããããå¥ã®ãŠã£ã³ããŠã«é ããŠããããããšãæåŸ ããç»åã«ãªããŸããã
ð§° ã¹ã¯ãªãŒã³ã·ã§ããä¿åã颿°ã«ãã
ç¹°ãè¿ã䜿çšããå Žåã¯ãæ¥æä»ãã§ä¿åããåŠçã颿°ã«ãããšäŸ¿å©ã§ãã
from datetime import datetime
from pathlib import Path
import pyautogui
def save_screenshot(
output_dir="screenshots",
prefix="screenshot",
region=None
):
directory = Path(output_dir)
directory.mkdir(
parents=True,
exist_ok=True
)
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S_%f"
)
output_path = directory / (
f"{prefix}_{timestamp}.png"
)
pyautogui.screenshot(
str(output_path),
region=region
)
return output_path
ç»é¢å šäœãæ®åœ±ããŸãã
saved_path = save_screenshot()
print(
f"ä¿åããŸãã: {saved_path}"
)
æå®ç¯å²ãæ®åœ±ããŸãã
saved_path = save_screenshot(
prefix="browser",
region=(100, 100, 1200, 800)
)
ãã¡ã€ã«åã«ãã€ã¯ãç§ãŸã§å«ããŠãããããåãç§ã«è€æ°åæ®åœ±ããŠãäžæžãããã«ãããªã£ãŠããŸãã
ðš ãšã©ãŒçºçæã®ç»é¢ãä¿åãã
èªåæäœäžã«ãšã©ãŒãçºçããå Žåããã®ãšãã®ç»é¢ãä¿åãããšåå ã調ã¹ããããªããŸãã
from datetime import datetime
from pathlib import Path
import pyautogui
output_dir = Path("error_screenshots")
output_dir.mkdir(
parents=True,
exist_ok=True
)
try:
center = (
pyautogui.locateCenterOnScreen(
"images/save_button.png",
confidence=0.9
)
)
pyautogui.click(center)
except Exception as error:
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
output_path = output_dir / (
f"error_{timestamp}.png"
)
pyautogui.screenshot(
str(output_path)
)
print(
f"ãšã©ãŒç»é¢ãä¿åããŸãã: "
f"{output_path}"
)
raise
æåŸã®raiseã¯ãã¹ã¯ãªãŒã³ã·ã§ãããä¿åããããšã§ãçºçãããšã©ãŒãæ¹ããŠéåºããŸãã
GUIèªååã§ã¯ããšã©ãŒçºçæã®ã¹ã¯ãªãŒã³ã·ã§ãããä¿åããŠãããšããã©ã®ç»é¢ã§åæ¢ãããããåŸãã確èªã§ããŸãã
ð§Ÿ æäœã®ååŸãæ®åœ±ãã
éèŠãªæäœã§ã¯ãå®è¡åãšå®è¡åŸã®äž¡æ¹ãèšé²ãããšç¢ºèªãããããªããŸãã
import time
from datetime import datetime
from pathlib import Path
import pyautogui
output_dir = Path("evidence")
output_dir.mkdir(
parents=True,
exist_ok=True
)
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
before_path = output_dir / (
f"{timestamp}_before.png"
)
after_path = output_dir / (
f"{timestamp}_after.png"
)
pyautogui.screenshot(
str(before_path)
)
pyautogui.click(
800,
500
)
time.sleep(1)
pyautogui.screenshot(
str(after_path)
)
æäœååŸã®ç»åãåãæ¥æã§é¢é£ä»ããŠä¿åã§ããŸãã
â ïž ã¹ã¯ãªãŒã³ã·ã§ããå©çšæã®æ³šæ
ð å人æ å ±ãæ©å¯æ å ±
ç»é¢å šäœãæ®åœ±ãããšãæå³ããŠããªãæ å ±ãç»åã«å«ãŸããããšããããŸãã
äŸãã°ã次ã®ãããªæ å ±ã§ãã
- æ°å
- ã¡ãŒã«ã¢ãã¬ã¹
- 顧客æ å ±
- ãã¹ã¯ãŒã
- ã¢ã¯ã»ã¹ããŒã¯ã³
- éç¥å 容
- 瀟å ã·ã¹ãã ã®æ å ±
ã¹ã¯ãªãŒã³ã·ã§ããã«ã¯ãå人æ å ±ãèªèšŒæ å ±ãæ¥åäžã®æ©å¯æ å ±ãå«ãŸããå¯èœæ§ããããŸãã ä¿åå ãä¿åæéãé²èŠ§æš©éãå€éšå ±æã®å¯åŠãäºåã«ç¢ºèªããŠãã ããã
ðœ ä¿å容é
ç»é¢å šäœã®ç»åã¯ãæ®åœ±åæ°ã«ãã£ãŠã¯å€§ããªå®¹éã«ãªããŸãã
ç¹ã«æ¬¡ã®æ¡ä»¶ã§ã¯ãä¿å容éãæ¥éã«å¢ããŸãã
- é«è§£å床ãã£ã¹ãã¬ã€
- è€æ°ç»é¢
- çãæ®åœ±éé
- é·æéã®ä¿å
- PNG圢åŒã§ã®å€§éä¿å
é£ç¶æ®åœ±ããå Žåã¯ãå€ãç»åãåé€ããä»çµã¿ãæ€èšããŸãã
ð±ïž ããŠã¹ã«ãŒãœã«
ç°å¢ãæ®åœ±æ¹æ³ã«ãã£ãŠã¯ãããŠã¹ã«ãŒãœã«ãç»åã«å«ãŸããªãããšããããŸãã
ã¯ãªãã¯äœçœ®ãèšé²ãããå Žåã¯ã座æšããã°ãšããŠå¥éä¿åããæ¹æ³ããããŸãã
import pyautogui
x, y = pyautogui.position()
print(
f"æ®åœ±æã®ããŠã¹äœçœ®: "
f"({x}, {y})"
)
pyautogui.screenshot(
"screenshot.png"
)
ðïž åç»ãã¢ãã¡ãŒã·ã§ã³
åç»ãã¢ãã¡ãŒã·ã§ã³ãèªã¿èŸŒã¿è¡šç€ºãªã©ãæ®åœ±ãããšãæ®åœ±ã¿ã€ãã³ã°ã«ãã£ãŠå 容ãå€åããŸãã
ç¹å®ã®ç¶æ ãæ®åœ±ãããå Žåã¯ã
- ç»åã衚瀺ããããŸã§åŸ ã€
- ç¹å®äœçœ®ã®è²ãå€ãããŸã§åŸ ã€
- åŠçå®äºã瀺ããã¿ã³ãç»åèªèãã
ãšãã£ãåŸ æ©åŠçãçµã¿åãããŸãã
ð¡ å®è·µäŸïŒæå®ãŠã£ã³ããŠã宿æ®åœ±ãã
次ã®äŸã§ã¯ãã¿ã€ãã«ã«ãGoogle Chromeããå«ããŠã£ã³ããŠã10ç§ééã§5åæ®åœ±ããŸãã
import time
from datetime import datetime
from pathlib import Path
import pyautogui
import pygetwindow
output_dir = Path("screenshots")
output_dir.mkdir(
parents=True,
exist_ok=True
)
windows = pygetwindow.getWindowsWithTitle(
"Google Chrome"
)
if not windows:
raise RuntimeError(
"察象ã®ãŠã£ã³ããŠã"
"èŠã€ãããŸããã§ããã"
)
window = windows[0]
if window.isMinimized:
window.restore()
window.activate()
time.sleep(1)
for number in range(1, 6):
timestamp = datetime.now().strftime(
"%Y%m%d_%H%M%S"
)
output_path = output_dir / (
f"chrome_{number:03d}_"
f"{timestamp}.png"
)
region = (
window.left,
window.top,
window.width,
window.height
)
pyautogui.screenshot(
str(output_path),
region=region
)
print(
f"ä¿åããŸãã: {output_path}"
)
if number < 5:
time.sleep(10)
ãã®ã³ãŒãã«ã¯ãã¹ã¯ãªãŒã³ã·ã§ããèªååã§ãã䜿ãåŠçãå«ãŸããŠããŸãã
- ä¿åå ãã©ã«ãã®äœæ
- 察象ãŠã£ã³ããŠã®æ€çŽ¢
- æå°åç¶æ ããã®åŸ©å
- ãŠã£ã³ããŠã®åé¢è¡šç€º
- ãŠã£ã³ããŠç¯å²ã®ååŸ
- æ¥æä»ããã¡ã€ã«å
- æå®ééã§ã®é£ç¶æ®åœ±
- æ®åœ±åæ°ã®å¶é
ð ãŸãšã
PyAutoGUIã§ã¯ãscreenshot()ã䜿çšããŠçŸåšã®ç»é¢ãååŸã§ããŸãã
代衚çãªæäœã¯æ¬¡ã®ãšããã§ãã
screenshot()ïŒç»é¢ãååŸããscreenshot("ç»åå.png")ïŒååŸãšä¿åãåæã«è¡ãregionïŒæ®åœ±ç¯å²ãæå®ããsave()ïŒååŸããç»åãããšããä¿åããcrop()ïŒååŸåŸã®ç»åãåãæãpixel()ïŒæå®åº§æšã®è²ãååŸããpixelMatchesColor()ïŒæå®åº§æšã®è²ãå€å®ãã
å®éã®èªååã§ã¯ã次ã®åŠçãçµã¿åããããšäŸ¿å©ã§ãã
- æ®åœ±åã«ã«ãŠã³ãããŠã³ãã
- æ¥æããã¡ã€ã«åã«å«ãã
- ä¿åå ãã©ã«ããèªåäœæãã
- äžå®ééã§é£ç¶æ®åœ±ãã
- ç¹å®ã®ãŠã£ã³ããŠç¯å²ã ããæ®åœ±ãã
- ãšã©ãŒçºçæã®ç»é¢ãä¿åãã
- æäœã®ååŸãèšé²ãã
ã¹ã¯ãªãŒã³ã·ã§ããã¯åãªãç»é¢ä¿åã ãã§ãªããèªåæäœã®ç¢ºèªãé害調æ»ãç»åèªèçšããŒã¿ã®äœæãªã©ãGUIèªååãå®å®ãããããã®éèŠãªæ©èœã§ãã