通过Python连接手机,并截图手机屏幕保存到电脑(android)
首先下载adb
可以到百度网盘链接下载:https://pan.baidu.com/s/1htbYtq0
或者自己去搜索引擎搜索,网上一大堆
将下载的压缩包解压,如图:
然后再系统中添加环境变量:
右键我的电脑- 属性-高级系统设置-高级-环境变量
将Path中添加adb.exe的路径:比如我的是G:\android\adb
然后用usb连接手机,且手机打开USB调试选项
通过命令行adb devices查看连接的设备
通过Python的subprocess模块来模拟命令行操作
- import subprocess
- class Screenshot():#截取手机屏幕并保存到电脑
- def __init__(self):
- #查看连接的手机
- connect=subprocess.Popen("adb devices",stderr=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
- stdout,stderr=connect.communicate() #获取返回命令
- #输出执行命令结果结果
- stdout=stdout.decode("utf-8")
- stderr=stderr.decode("utf-8")
- print(stdout)
- print(stderr)
- def screen(self,cmd):#在手机上截图
- screenExecute=subprocess.Popen(str(cmd),stderr=subprocess.PIPE,stdout=subprocess.PIPE,shell=True)
- stdout, stderr = screenExecute.communicate()
- # 输出执行命令结果结果
- stdout = stdout.decode("utf-8")
- stderr = stderr.decode("utf-8")
- print(stdout)
- print(stderr)
- def saveComputer(self,cmd):#将截图保存到电脑
- screenExecute = subprocess.Popen(str(cmd), stderr=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
- stdout, stderr = screenExecute.communicate()
- stdout = stdout.decode("utf-8")
- stderr = stderr.decode("utf-8")
- # 输出执行命令结果结果
- stdout = stdout.decode("utf-8")
- stderr = stderr.decode("utf-8")
- print(stdout)
- print(stderr)
- cmd1=r"adb shell /system/bin/screencap -p /sdcard/3.png" #命令1:在手机上截图3.png为图片名
- cmd2=r"adb pull /sdcard/3.png d:/3.png" #命令2:将图片保存到电脑 d:/3.png为要保存到电脑的路径
- screen=Screenshot()
- screen.screen(cmd1)
- screen.saveComputer(cmd2)