小丸子,网络工程专业在读。希望通过将自己学到的知识分享出来可以发现自己某个知识的薄弱点,更加有利于学习,喜欢将自己所学到的知识运用在生活中。乐于分享。
博客:http://blog.csdn.net/abitch从网上看到过用python远程发送截图的博客,这次我要用python实现远程视频监控,看起来既高大上,做起来又非常简单。先说一说整体思路,我们要做到手机发送邮件,python脚本接收到有特定邮件的信息,模拟鼠标操作点击qq上的视频通话按钮以达到视频监控的目的。
我们需要两个qq号,一个在电脑端登陆,一个在手机端登陆,python脚本需要的账号和密码是你电脑端的。代码所需第三方库:imaplib,pyautogui.
Imaplib是python的第三方库,我们用它来实现对邮件的操作,pyautogui也是需要安装的第三方库,我们用它来模拟鼠标的操作。
# -*- coding: utf-8 -*-
import imaplib, email
import pyautogui,time
# 延时5秒后点击qq中的视频通话按钮
defdoWork():
time.sleep(5)
# 这两个数字代表视频通话按钮的坐标
pyautogui.click(55, 65)
deflogin():
M = imaplib.IMAP4_SSL("imap.qq.com")
try:
try:
M.login('[email protected]','password')#密码是授权码
except Exception,e:
print 'login error: %s' % e
M.close()
# 找到收件箱中最后一封未读邮件判断发件人是否相符
M.select("INBOX")
typ, data = M.search(None, 'UNSEEN')
msgList = data[0].split()
last = msgList[len(msgList)-1]
type,data = M.fetch(last, '(RFC822)')
msg=email.message_from_string(data[0][1])
print msg["From"]
print last
if msg["From"] == "your message":
# 若发件人相符则进行视频通话
doWork()
# 删除邮件
M.store(last, '+FLAGS', r'(\Deleted)')
M.expunge()
M.close()
except Exception, e:
print 'imap error: %s' % e
M.close()
def run():
while True:
try:
time.sleep(10)
login()
except Exception as e:
print (e)
if __name__=="__main__":
run()
代码中换上你的qq邮箱账号和密码
注意事项:
首先qq邮箱一定要开启imap服务,相关步骤可以百度,开启imap服务后会有一个授权码,填写密码的时候不要写你的qq密码,要写这个授权码。
进行判断的时候我偷了个懒,只要是我发的邮件,不管邮件内容是什么都会跟我进行视频通话,也就是说你在邮件中填什么内容都可以,只要是你指定的账号发送的就可以,这个我推荐大家用新浪邮箱,因为qq邮箱发送东西总是报成垃圾邮件而不能成功发送
另外还有一个条件,电脑上运行这个脚本的时候必须把你要进行视频通话的聊天窗口打开并且最大化。就像这样:
例如我要跟小丸子视频通话,我就把小丸子的聊天窗口打开,并且最大化。这样程序运行的时候能够保证鼠标正确点到视频通话的按钮。
接下来,只要你用手机给电脑上的qq发送一封邮件,不久电脑就会跟你视频通话了。
代码写的并不好,只是完成了特定功能,希望能对学python的你带来一点乐趣。
我 们 终 将 改 变 潮 水 的 方 向
— Life is short,we use Python —点击阅读原文可以进入作者博客