Python - OS X 中的屏幕抓取和控制鼠标

标签 python macos screen-scraping

我正在为一个业余项目研究 OS X 中的屏幕抓取和控制鼠标。

我不是在寻找最优雅的方式,但我需要能够每隔半秒左右捕获一次屏幕。

我发现我可以使用 screencapture 命令行工具 (screencapture -w -W -i ~/Desktop/capture.jpg),但我'担心它可能不够快。

我也在寻找一种发送点击、设置光标位置和获取光标位置的方法。有点像 win32api 提供的:mouse_eventSetCursorPosGetCursorPos

我发现这个示例代码使用 PyObjC 库来设置光标位置,但它总是将我的鼠标移动到 (0,0) 而不是我传递给它的坐标。

import objc

class ETMouse():   
    def setMousePosition(self, x, y):
        bndl = objc.loadBundle('CoreGraphics', globals(),
                '/System/Library/Frameworks/ApplicationServices.framework')
        objc.loadBundleFunctions(bndl, globals(),
                [('CGWarpMouseCursorPosition', 'v{CGPoint=ff}')])
        CGWarpMouseCursorPosition((x, y))

if __name__ == "__main__":
    et = ETMouse()
    et.setMousePosition(500, 500)

编辑:如果重要的话,我正在运行 Snow Leopard (10.6)。

谢谢!

最佳答案

看看autopy .适用于 OSX、Linux 和 Windows。

关于Python - OS X 中的屏幕抓取和控制鼠标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4515871/

相关文章:

python - HTTPConnectionPool(主机=\'0.0.0.0\',端口=7000): Max retries exceeded with url (Caused by NewConnectionError

Python Urllib UrlOpen 读取

screen-scraping - 抓取网站的请求/第二标准是什么?

Python 网络抓取 : difference between sleep and request(page, 超时=x)

python - 如何在不使用python替换方法的情况下替换句子中的单词

javascript - 我正在尝试以一种奇怪的方式用 python 创建一个网站

javascript - 将数组从 ajax 发送到 Flask 不起作用

java - 如何从Mac上完全卸载java? JRE 和 JDK

c++ - 跨平台 Windows/OS X 开发,具有大量现有代码库

linux - 将文件自动部署到多台 Mac