关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)

以前看到网上一些小程序,在处理完事物后会自动发送qq消息,但是一直搞不懂是说明原理。也在网上找过一些python登陆qq发送消息的文字,但是都太复杂了。今天偶然看到一篇文章,是用python调用win32的接口发送qq消息的,觉得不错,就先记录下来,日后肯定会用得上这些小工具。

发送qq消息要求已经登陆qq,而且qq的窗口是独立的,现在新版的qq一般都是将所有的聊天窗口聚合在一起,因此要设置将qq窗口分离,或者将需要发送消息的那个窗口单独分离出来。

上代码吧。

# 原理是先将需要发送的文本放到剪贴板中,然后将剪贴板内容发送到qq窗口
# 之后模拟按键发送enter键发送消息

import win32gui
import win32con
import win32clipboard as w

def getText():
    """获取剪贴板文本"""
    w.OpenClipboard()
    d = w.GetClipboardData(win32con.CF_UNICODETEXT)
    w.CloseClipboard()
    return d

def setText(aString):
    """设置剪贴板文本"""
    w.OpenClipboard()
    w.EmptyClipboard()
    w.SetClipboardData(win32con.CF_UNICODETEXT, aString)
    w.CloseClipboard()

def send_qq(to_who, msg):
    """发送qq消息
    to_who:qq消息接收人
    msg:需要发送的消息
    """
    # 将消息写到剪贴板
    setText(msg)
    # 获取qq窗口句柄
    qq = win32gui.FindWindow(None, to_who)
    # 投递剪贴板消息到QQ窗体
    win32gui.SendMessage(qq, 258, 22, 2080193)
    win32gui.SendMessage(qq, 770, 0, 0)
    # 模拟按下回车键
    win32gui.SendMessage(qq, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
    win32gui.SendMessage(qq, win32con.WM_KEYUP, win32con.VK_RETURN, 0)

# 测试
to_who=‘xxx‘
msg=‘这是测试消息‘
send_qq(to_who, msg)

特别说明:to_who中填写的是聊天窗口的名字,而非QQ号码。(也就是是网名或备注名,具体的也可以在任务管理器中查看)

模拟按键

python可以通过win32和windows做各种交互,网上还有一篇文章是批量操作文件的例子,其原理和按键精灵差不多。只是好多参数不懂。就好比上面的发送qq消息的例子,本来想改改其中的方法,跳过剪贴板这一步,可是怎么改都不行,以后再试试。

参考:

http://blog.csdn.net/dahuae/article/details/43969175

http://blog.csdn.net/seele52/article/details/17504925

http://lixxu.iteye.com/blog/417218

http://www.codeweblog.com/%E7%94%A8pywin32%E5%AE%9E%E7%8E%B0windows%E6%A8%A1%E6%8B%9F%E9%BC%A0%E6%A0%87%E5%8F%8A%E9%94%AE%E7%9B%98%E5%8A%A8%E4%BD%9C/

以上转载自http://blog.csdn.net/suzyu12345/article/details/52934328

我们通过这个功能可以为爬虫干什么事情呢?我首先想到的就是利用这个功能可以监控爬虫的进度。比如如果爬取的时间太长,一天两天或者更长,我们不可能一直盯着屏幕,这个时候我们就可以使用这个功能了。

当爬虫程序结束或者报错停止的时候,我们可以给我们自己的qq发送消息,提示我们爬虫结束了。

利用scrapy中pipelines.py文件,如下的方法:

def close_spider(self,spider):

当程序执行完毕的时候,调用上方的代码,提示我们爬虫结束,达到监控的目的

原文地址:https://www.cnblogs.com/lilinpging/p/8304941.html

时间: 2024-08-09 12:46:06

关于 使用python向qq好友发送消息(对爬虫的作用----当程序执行完毕或者报错无限给自己qq发送消息,直到关闭)的相关文章

log4j通过配置文件配置即,即可完成系统报错想向指定邮箱发送提醒消息,网上的很多方法都又问题

我参考了下面的链接去实现,但是遇到了一些问题 参考链接: 1)http://blog.csdn.net/azheng270/article/details/2173430/ 这个链接说了如何操作的问题,但是他的log4j的配置文件感觉有问题 2)http://blog.csdn.net/cosmichut/article/details/2448159  log4j配置相对又点全 大致说一下步骤: 1.下载activation.jar和mail.jar,导入项目 2.下载log4j的压缩包文件,

QQ 帮助他人-01-有人遇到过Skype服务端中出现MCU报错的问题么?导致无法实现多方视频?

[初中]北京-XX 2017/12/21 17:37:52 求助一下:有人遇到过SKYPE服务端中出现MCU报错的问题么?导致无法实现多方视频 [管理员]上海-学无止境(3313395633) 2017/12/21 17:41:13 以前正常? [初中]北京-XXX 2017/12/21 17:43:10 嗯 [初中]北京-XXX 2017/12/21 17:43:43 不开多方就不会出现问题,两个人通话,在加进来一个,提示无法链接服务器,日志就出现这个报错 [管理员]上海-学无止境(33133

python 调用父类方法, 重写父类构造方法, 不显式调用,会报错

子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题 如果子类和父类都有构造函数,子类其实是重写了父类的构造函数,如果不显式调用父类构造函数,父类的构造函数就不会被执行,导致子类实例访问父类初始化方法中初始的变量就会出现问题. 参考 https://www.cnblogs.com/lindaxin/p/7986227.html 原文地址:https://www.cnblogs.com/baxianhua/p/10819926.html

Eclipse中pydev开发,python重载__init__报错,是可以正常执行

python支持函数重载 而在使用Eclipse的pydev开发时,重载函数__init__时,却出现了错误duplicated 我想不到解决办法,但是居然能正常执行. pydev报错是编译错误,而python interpretor却可以执行

如何解决python升级后yum报错

当我们yum命令的时候,会提示 "File "/usr/bin/yum", line 30 except KeyboardInterrupt, e: ^ SyntaxError: invalid syntax" 可能是升级python引起的,yum是用python作为解释器的. 1.当我们输入任何yum命令,都会报错.原因是升级python后,导致yum所需版本不一致导致! 2.如图,我将python版本编译安装python3.3.0.将3.3链接到/usr/bin

解决忽略VScode中Python插件pylint报错的问题

pylint是VScode中python自带的插件,可以帮助代码规范,美观. 但是有些报错是你不想看到的,你可以选择性的忽略. 例如,在re.compile()中,可以添加参数re.S使. 匹配任意字符.而pylint会一直报错不存在这种方法,导致无法运行.在Pycharm中则不会出现这种问题. 想要自定义忽略错误,操作如下: 在setting,json文件中搜索python.linting.pylintArgs 修改如下. 在python.linting.pylintArgs 中添加字符串 -

Android:仿手机QQ好友动态的ListView

1.介绍: 本博客使用XListView模仿Android版QQ好友动态的ListView效果.效果截图例如以下: 效果图1 效果图2 这里面主要涉及的是ListView的布局问题,让我们看一下Item的布局文件吧. <?xml version="1.0" encoding="utf-8"? > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android&

水滴IP教你如何查询QQ好友的IP地址

水滴IP教你如何查询QQ好友的IP地址有时候很多人会遇到查询别人IP的情况,但是怎么查询QQ好友的IP地址呢,下面水滴IP教大家一个简单的方法. 首先打开电脑上的运行框,输入:cmd,进入到DOS命令窗,然后输入netstat -n命令 然后打开QQ,对你想要知道IP地址的QQ还有发送文件或者图片,打开命令窗试用netstat -n命令,得到最近主机进行的连接的IP地址 最后打开百度,把IP地址放上去搜索就可以知道QQ好友所在的IP地区啦! 换IP:www.shuidiip.com 原文地址:h

MapReduce实现QQ好友推荐

大家都知道qq用户量上亿,每个用户又有很多的好友,因此,数据量十分的庞大,如何才能实现QQ的好友推荐呢? 下面举一个例子: A有QQ好友B B有QQ好友C 则A,C有可能是好友. 当A登录的时候,则会向A推荐C,当C登录的时候,则会向C推荐A. Demo 输入数据 map阶段 key:主 value:从 key:从 value:主 将一条记录分别作为key,value进行输出. tom-->jason jason-->tom tom-->lgd lgd-->tom reduce阶段