精华内容
下载资源
问答
  • 自动回复 电话 短信

    2014-05-21 21:36:13
    对未接电话自动回复短信,短信内容根据每个人个体化设置,也可以为全部号码回复一样的短信,全部回复是只回复通讯录中存在的号码 2.对短信自动回复短信 3.要自动回复的号码可以自己输入,也可以从通讯录中添加
  • 1.对未接电话自动回复短信,短信内容根据每个人个体化设置,也可以为全部号码回复一样的短信,全部回复是只回复通讯录中存在的号码 2.对短信自动回复短信 3.要自动回复的号码可以自己输入,也可以从通讯录中添加 
  • 1.对未接电话自动回复短信,短信内容根据每个人个体化设置,也可以为全部号码回复一样的短信,全部回复是只回复通讯录中存在的号码 2.对短信自动回复短信 3.要自动回复的号码可以自己输入,也可以从通讯录中添加
  • 用python实现微信自动回复很简单,因为python有一个itchat模块,作者把微信网页版抓的包封装成到这个模块里,感谢作者itchat可以通过pip install itchat命令直接导入,或者 在点击打开链接下载先导入模块:import ...

    用python实现微信自动回复很简单,因为python有一个itchat模块,作者把微信网页版抓的包封装成到这个模块里,感谢作者

    itchat可以通过pip install itchat命令直接导入,或者 在点击打开链接下载


    先导入模块:

    import itchat

    登录与发送消息:

        #登录操作(执行后会让你扫二维码)

     itchat.auto_login()

        #给文件助手发送消息

         itchat.send("给自己发消息", toUserName = 'filehelper')


        特别说明:UserName不是备注也不是昵称, 你可以当成某个唯一标识符,但每次登录都会改变

                        send() 函数无法发给自己消息,如果一定要发给自己消息,请通过文件助手

        可以通过

        itchat.auto_login(hotReload = True)

        用来暂时保留登录状态

        通讯录所有人的UserName可以通过

    itchat.get_friends(update = True)[0:]['UserName']
    

        来获取

        通讯录第一个(第[0]位)元素是自己的UserName

        当然现在你还不知道UserName对应的人是谁,所以你只能全部遍历,但 此时你肯定想到如何使用这几个来实现消息群发了(请自己试着实现一下)

        想对某个特定的人发消息,这里我就先不说了,毕竟主题还是自动回复


        接下来我来说一个itchat里方便于自动回复的东西——msg.register装饰器,实质上就是个事件监听器,有人发消息来便调用

    @itchat.msg_register(['Text'])
    
    def text_reply(msg):
    
        return u'[自动回复] %s' % msg['Text']


    这里的Text是文本消息,如果发送者发送的是文字消息,msg['Text']里存放着文本消息,如果对方发的是图片,语音的、,text里放的便是下载的方法

    然后还有其他,如'Picture', 'Video', 'Recording', 'Attachment', 'Note'

    函数返回时执行send函数,所以这相当于 

     itchat.send("[自动回复] %s" % msg['Text'],  toUserName = msg['FromUserName'])
    

    可以通过msg['FromUserName']得到发信者的UserName


    主函数里要通过itchat.run()来执行,

    这里先提供一部分源码:

    import itchat
    import time
    
    @itchat.msg_register(['Text', 'Node', 'Map', 'Sharing', 'Card'])
    def text_reply(msg):
    	print(msg)
    	global boot
    	#如果是发送人不是自己
    	if boot == True and msg['FromUserName'] != myUserName:
    		#发送一条消息给文件
    		itchat.send(
    			msg = u"[%s] @%s发来一条消息: %s" % 
    			 ((time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(msg['CreateTime']) )), 
    			   msg['User']['RemarkName'], msg['Text']),
    			 toUserName = 'filehelper')
    		#return实际上是调用send
    		return u'[自动回复]抱歉, 我暂时不在,等会再联系。\n[系统]已将您的消息发给Master\n内容为:%s\n' % msg['Text']
    
    	#如果是自己发的(即管理员消息)
    	elif msg['FromUserName'] == myUserName:
    
    		if msg['Text'] == 'Open':
    			boot = True
    			itchat.send("自动回复已开启", toUserName = 'filehelper')
    	#		itchat.send(u'[自动回复]抱歉, 我暂时不在,等会再联系。\n[系统]已将您的消息发给Master\n内容为:%s\n' % msg['Text'], toUserName = 'filehelper')
    
    		elif msg['Text'] == 'Close':
    			boot = False
    			itchat.send("自动回复已关闭", toUserName = 'filehelper')
    		elif msg['Text'] == 'shutdown':
    			itchat.send("账号已下线", toUserName = 'filehelper')
    			itchat.logout()
    
    		
    if __name__ == '__main__':
    
    	itchat.auto_login(hotReload = True , enableCmdQR = True)
    #	itchat.load_login_status()
    
    	#获取自己的临时ID:联系人第0个即自己
    	myUserName = itchat.get_friends(update = True)[0]['UserName']
    
    
    	#是否开启
    	boot = True
    
    	itchat.run()

    其中boot为控制开启关闭的变量, msg['CreateTime']的时间数我就不说了

    msg['User']['RemarkName'] 即为备注姓名,

    msg['User']['NickName'] 为昵称

    其他参数请查阅官方文档以及源码



    下面给个将发信者发送的图片,表情,语言,视频,文件等发送给文件助手的函数

    代码里都写得很清楚了,我就不解释了,今天好困,先溜了

    @itchat.msg_register(['Picture', 'Video', 'Recording', 'Attachment'])
    def file_reply(msg):
    	print(msg)
    	if boot == True:# and msg['FromUserName'] != myUserName:
    		#msg['Text']是一个文件下载函数,下载文件到当前路径
    		msg['Text'](msg['FileName'])
    		
    		#将下载的文件,按Type发送给文件助手,若指定类型不存在,就默认为file
    		msgsend = '@%s@%s' % ({'Picture': 'img', 'Video': 'vid'}.get(msg['Type'], 'fil'), msg['FileName'])
    		"""
    			send消息,['@fil@', '@img@', '@msg@', '@vid@'],四个参数分别发送文件,图片,纯文本,视频音频
    
    		"""
    		itchat.send(msgsend, toUserName = 'filehelper')
    		return u"[自动回复]抱歉, 我暂时不在,等会再联系。\n[系统]已自动将您的[%s]发送给Master" % ({'Picture' : u'图片',  'Video' : u'视频', 'Recording' : u'语音'}.get(msg['Type'], u'文件'))
    		
    







    展开全文
  • 我需要 每隔一段时间去更新二维码,然后当群人数超过100人了,只能邀请进群, 这个时候就需要别人添加我为好友,然后我通过,打开交流群,添加成员, 然后滚列表,一个个翻,找到那个人,然而我通讯录几百个人......

    引言


    一开始二维码加群,但是呢,这个东西隔一段时间会过期,我需要 每隔一段时间去更新二维码,然后当群人数超过100人了,只能邀请进群, 这个时候就需要别人添加我为好友,然后我通过,打开交流群,添加成员, 然后滚列表,一个个翻,找到那个人,然而我通讯录几百个人...后来我学会 了用标签,虽然可以过滤一部分人,但是还是要翻;还有一个问题就是, 加我的人时间的随机性,早上,下午,或者晚上,甚至还有深夜3,4点 加我的,最尴尬的是,刚拉完一个人,又有一个人加我,我又得拉一次... 还有一点就是不想陌生人窥探自己的朋友圈...


    作为一个Pyer,肯定要想办法解决上述这些问题,解放自己的双手啊, 让机器人来帮我做这些事,说干就干,立马分析一波实现流程。


    流程分析



    大概流程如下

    Step 1.被添加好友,过滤关键词,看是否包含Py,Python 字(pi)眼,如果包含, 通过请求,并说一句欢迎词的骚话;

    Step 2.过滤用户发送的关键词,响应相关信息:

    • 1.加群:发送加群链接

    • 2.博客:返回我的掘金主页链接

    • 3.公众号:返回公众号二维码图片

    • 4.打赏:返回一个动图,感谢词,微信付款二维码

    • 5.其他:返回一个黑人问号图片


    流程是挺简单的,然而实际实现的时候一堆问题,大部分时间都在试错, 翻issues,谷歌


    代码实现

    好友验证通过

    实现代码如下




    运行截图


    (要出现验证信息的话,需要双方互删!!!,另外如果你自己做机器人的话, 记得去设置 -> 隐私 -> 加我为朋友需要验证,把这个给勾选!!!)


    关键词回复



    @itchat.msg_register([TEXT]) :监测信息的,里面那个列表代表监测的类型, 这里目前只需要对文本进行过滤,除此之外还可以监听下面这些类型: PICTURE, RECORDING, ATTACHMENT, VIDEO,这个自己翻文档和issues去。 另外,这个方法,可以直接return一个字符串,会直接发送一个文本 给发送这个信息的人。

    如果是其他类型的,就需要调用**send_msgsend_image这类方法 去发送信息了,参数都是两个(字符串/附件文件名,UserName),这个UserName 可不是直接的 '十二' 这样的东西,是类似于@abcdefg1234567 这样的东西, 这个东西你需要去获取,这里接手别人的信息就很好拿:msg['FromUserName'])** 如果是你主动发的话,就需要通过get_friends获得好友列表,或者通过search_friends, 得到一个列表,接着遍历,name等于好友名字的值,然后在拿到UserName。


    接着说下发送群聊的

    这个可把我坑惨了,试了N久都不发不了,没任何提示, 官方issues也是,看到一个什么超过40人无效之类的,要调用另外一个方法, 然而那个方法根本没有,后来折腾了好久才知道是name参数不对,第一个参数 不是直接传群名,而是和上面那个UserName一样是一个@xxx这样的东西,同样 需要通过get_chatrooms或者search_chatrooms拿到群聊列表,然后遍历列表 拿到你的这个群聊,才是正确的,然后呢**add_member_into_chatroom**() 这个函数的第二个参数,不是直接UserName,而是需要自己另外拼接成字典: [{'UserName': msg['FromUserName']}],还有一个参数是:useInvitation=True, 是否以发送邀请链接的形式拉人,群聊满100人的话需要把这个属性设置为True。


    大概细节的东西就这样,接下来写代码实现下,先是定义一个获取群聊ID的函数:

    接着就是编写自动处理函数了,细节那里弄懂了,基本没什么问题:


    # 微信小宇宙助手
    import datetime
    import re
    from threading import Timer
    import itchat
    from itchat.content import *
    # 小宇宙今天新闻匹配正则
    xyz_compile = re.compile(r'.*?小宇宙整理.*?%d月%d日.*'
                            % (datetime.datetime.now().month, datetime.datetime.now().day), re.S)
    # 验证好友信息正则,关键词中有Python,Py和加群的关键字就可以了
    add_friend_compile = re.compile(r'Python|Py|加群')
    # 获取用户昵称的正则的
    nickname_compile = re.compile(r'NickName\':\'(.*)\'', re.S)
    # 小宇宙日报抓取
    @itchat.msg_register([TEXT], isGroupChat=True)
    def xyz_reply(msg):
       group_list = [u'我是渣渣辉', u'我是轱天乐', u'探挽懒月']
       group_name = []
       for group in group_list:
           chat = itchat.search_chatrooms(name=group)
           if len(chat) > 0:
               group_name.append(chat[0]['UserName'])
       # 过滤小宇宙新闻
       result = xyz_compile.search(msg['Content'])
       print(msg['ActualNickName'] + " : " + msg['Content'])
       if result is not None:
           if result.group() is not None and msg['ActualNickName'] == u'小宇宙':
               for group in group_name:
                   itchat.send('%s' % (msg['Content']), toUserName=group)
    # 每个半个小时发依次信息貌似能防止掉线
    def loop_send():
       global count
       itchat.send('大扎好,我系轱天乐,我四渣嘎辉,探挽懒月,介四里没有挽过的船新版本,'
                   '挤需体验三番钟,里造会干我一样,爱像借款游戏。'
                   , toUserName=itchat.search_chatrooms(name=u'探挽懒月')[0]['UserName'])
       count += 1
       if count < 10000:
           Timer(1800, loop_send).start()
    # 自动通过加好友
    @itchat.msg_register(itchat.content.FRIENDS)
    def deal_with_friend(msg):
       if add_friend_compile.search(msg['Content']) is not None:
           itchat.add_friend(**msg['Text'])  # 自动将新好友的消息录入,不需要重载通讯录
           itchat.send_msg('嘤嘤嘤,我是智障机器人小Pig,\n很高兴认识你,回复关键字:\n\n 加群,博客,公众号,打赏 \n\n 来继续我们的摔跤♂故事!',
                           msg['RecommendInfo']['UserName'])
           itchat.send_image('welcome.png', msg['RecommendInfo']['UserName'])
    # 自动处理信息
    # 1.加好友后发送加群信息
    # 2.过滤加群信息
    # 3.公众号推荐
    # 4.打赏
    @itchat.msg_register([TEXT])
    def deal_with_msg(msg):
       text = msg['Content']
       if text == u'加群':
           itchat.add_member_into_chatroom(get_group_id("小猪的Python学习交流群"),
                                           [{'UserName': msg['FromUserName']}], useInvitation=True)
       elif text == u'博客':
           return 'coder-pig的个人主页-掘金:https://juejin.im/user/570afb741ea493005de84da3'
       elif text == u'公众号':
           itchat.send_image('gzh.jpg', msg['FromUserName'])
       elif text == u'打赏':
           itchat.send_image('ds.gif', msg['FromUserName'])
           itchat.send_msg('您的打赏,会让小猪更有动力肝出\n更Interesting的文章,谢谢支持~', msg['FromUserName'])
           itchat.send_image('wxpay.png', msg['FromUserName'])
       else:
           itchat.send_image('hrwh.png', msg['FromUserName'])
    # 获得群聊id
    def get_group_id(group_name):
       group_list = itchat.search_chatrooms(name=group_name)
       return group_list[0]['UserName']
    if __name__ == '__main__':
       count = 0
       Timer(1800, loop_send).start()
       itchat.auto_login(enableCmdQR=2, hotReload=True)
       itchat.run()
    作者:coder-pig
    链接:https://juejin.im/post/5abf5d69518825558723af66
    展开全文
  • 近日有关于小米手机自动恢复删除的信息怎么办的问题受到了很多网友们的关注,大多数网友都想要知道小米手机自动恢复删除的信息怎么办的具体情况,那么关于到小米手机自动恢复删除的信息怎么办的相关信息,小编也是在...

    bc11797767fac3e8c47dc037edf56dbf.png

    近日有关于小米手机自动恢复删除的信息怎么办的问题受到了很多网友们的关注,大多数网友都想要知道小米手机自动恢复删除的信息怎么办的具体情况,那么关于到小米手机自动恢复删除的信息怎么办的相关信息,小编也是在网上进行了一系列的信息,那么接下来就由小编来给大家分享下小编所收集到与小米手机自动恢复删除的信息怎么办相关的信息吧(以下内容来自于网络非小编所写,如有侵权请与站长联系删除)

    1. 小米手机想找回被删的短信怎么弄

    可以恢复部分,你在电脑上打开360软件大全,搜索北亚数据恢复,有安卓版和苹果版

    1

    打开“360安全卫士”,切换至“软件管家”选项卡。

    2

    在打开的“软件大全”窗口中,搜索“手机短信恢复”。并从搜索结果列表中根据自己的手机类型来选择“安卓”和“苹果”两款数据恢复软件其中之一,点击“下载”按钮。在此小编选择“安卓手机数据恢复软件”。

    3

    接下来将手机通过USB数据线和电脑相连,同时打开手机中的“USB调试”开关。

    4

    手机必须获取ROOT权限。其中一种获取手机Root权限的方法是从百度中搜索“刷机精灵”,利用刷机精灵来获取手机ROOT权限。

    运行桌面上的“Frombyte recovery for Android”软件,在程序主界面中点击“导出手机数据”按钮。

    在确保手机“USB调试”开关正常开启的情况下,从弹出的窗口中点击“加载设置”按钮。

    当手机设备信息获取成功后,点击“获取短-信数据”按钮,以便获取短-信数据库文件。

    在弹出的文件保存位置窗口中,选择保存至某个磁盘目录中,该目录不能包含中文名称,点击“确定”即可导出短-信数据库文件成功。

    接着点击程序主界面中的“新建任务”按钮。

    在弹出的“新建任务”窗口中,从“任务选项”下拉列表中选择“短-信息”,然后选择短-信数据库文件,点击“确定”按钮。

    接着就会列出当前手机中已存在的短-信和被删除的短-信。

    选择“删除的短-信”项,右击已删除短-信列表,选择“导出全部短-信”项。

    在弹出的窗口中,点击“保存”按钮就可以恢复短-信内容啦。

    最后将生成的短信内容文件用Excel表格打开就可以看到短-信内容

    回答不容易,希望能帮到您,满意请帮忙采纳一下,谢谢

    2. 怎么关掉小米手机的自动短信回复

    貌似没有这个功能,是不是所有其他人都会有这样的提示短信,还是只是某个人是这样,只是某人的话,应该是他手机开了其他服务。更详细的描述问题有助于网友理解你遇到的麻烦,帮助你更准确的解决问题。谢谢你支持小米手机!

    一、这是因为设置了来电拒接电话自动回复短信的功能。

    二、取消来电拒接自动回复短信的方法:

    1、首先打开手机,找到拨号。

    2、选择拨号的设置。

    3、进入更多电话设置。

    4、来电拒接短信,点击取消即可。

    3. 小米手机如何恢复删除的短信

    01.在“系统应用”文件夹中找到“我的小米”点击进入。同时利用“小米账户”登陆“我的小米”应用。

    02.从打开的“我的小米”应用界面中,点击“云服务”项进入。“云服务”中“小米”服务中的一项内容。

    03.待进入“小米云服务”界面后,找到“通话记录”项点击进入详细设置界面。

    04.从打开的“小米云服务”窗口中,开启“同步通话记录”功能,此时只需手机连接WiFi网络,则将自动同步通话记录。

    05.小米通话记录恢复方法:

    直接在电脑浏览器中输入“i.mi.com”即可进入“小米云服务”官方网站,在此利用“小米账户”完成登陆操作。

    06.待登陆“小米云同步”账户完成后,点击“验证”按钮,利用手机码和验证码完成身份验证操作。

    07.待身份验证成功后,在“小米云服务”主界面中点击“通话记录”或“通讯录”按钮进入。

    08.从打开的“通讯录”或“通话记录”管理界面中,点击左下角的“恢复联系人”或“恢复通话记录”按钮,此将其在右侧出现“恢复日期选项”界面。

    09.选择要恢复的日期后,点击“查看并恢复”按钮。

    10.此时将弹出“恢复联系人”或“恢复通话记录”窗口,点击“恢复”按钮即可恢复对应的联系人和通话记录。

    4. 小米手机短信删除怎么恢复

    工具:小米8

    1、打开手机设置的选项进入,点击小米账号的选项。

    2、然后进入账号信息页面,点击下面的云服务的选项。

    3、然后进入以后,然后点击下方的回收站的选项,如图所示。

    4、然后进入小米云服务回收站里面,点击短信功能,把所有的信息回复即可。

    5、然后进入以后,就是找到被删除的短信,点击后面的勾选,然后并点击下方的恢复即可完成操作。

    5. 小米手机怎么找回不小心删除的短信

    方法/步骤 1 首先,我们需要开启“短信云同步”功能,进入“短信”界面,向下拖动即可看到“小米云同步”的状态提示,点击进入“小米云同步”界面。

    2 从打开的“小米云服务”窗口中,点击“立即同步”按钮,此时将自动同步小米手机中的“短信”、“联系人”、“相册”以及“通话记录”等内容。 3 除了同步小米手机中所有数据之外,我们还可以在“小米云服务”界面中,点击“短信”项进入详细设置界面。

    4 在进入“短信 小米云服务”界面后,开启“同步短信”和“仅在WiFi下同步彩信”项。此时从最下方的提示处可知当前正在同步短信操作。

    5 从“小米云服务”最下方可以看到“在电脑上访问 i.mi.com”可以管理个人数据。 6 根据以上提示在电脑浏览器中输入“i.mi.com”即可进入“小米云服务”个人数据管理界面,在此选择使用“小米账号”进行登陆。

    7 等登陆“小米云服务”网站后,点击如图所示的“验证”按钮。 8 接下来选择其中一种验证方式(通常为手机号验证),将收到的短信验证码输入并点击“确定”即可完成身份验证操作。

    9 然后从“小米云服务”界面中点击“短信”按钮即可进入“手机短信”管理界面。 10 从打开的“手机短信”管理界面中,从左侧列表中点击相应的短信,即可在右侧查看详细内容。

    在此我们直接点击左下角的“扩展菜单”,从中选择“短信回收站”项。 11 待进入“短信回收站”界面后,勾选要进行恢复的短信,可同时勾选并恢复多条短信,点击右下角的“恢复”按钮。

    12 此时相关已删除的短信将自动被恢复。查看手机中的“短信”,就会发现相应的已删除短信已经被成功恢复啦。

    展开全文
  • 一个个翻,找到那个人,然而我通讯录几百个人…后来我学会 了用标签,虽然可以过滤一部分人,但是还是要翻;还有一个问题就是, 加我的人时间的随机性,早上,下午,或者晚上,甚至还有深夜3,4点 加我的,最尴尬的是...
  • 选择开启自动回复功能 功能实现思路 1、爬取天气信息 天气信息获取网站:中国天气网 http://www.weather.com.cn/ 网站后面拼接上weather/{city_code}.shtml,可以获取到指定城市的天气情况(西安 天气ID...

    效果展示

    • 打包成exe文件之后的效果
      • 选择城市
      • 选择好友(可以对群组发送消息,群组需要先添加到微信通讯录中)
      • 选择发送天气预报的频率
      • 选择开启自动回复功能
        在这里插入图片描述

    功能实现思路

    1、爬取天气信息

    • 天气信息获取网站:中国天气网
      • http://www.weather.com.cn/ 网站后面拼接上weather/{city_code}.shtml,可以获取到指定城市的天气情况(西安 天气ID:101110101)
      • 城市天气ID获取,自己百度查找,本篇博客代码内部也有
      • 西安的天气页面完整链接:http://www.weather.com.cn/weather/101110101.shtml
        在这里插入图片描述
      • 获取到页面之后,通过xpath获取需要的天气内容(使用xpath时尽量用标签的ID获取需要的信息,防止网站样式变化,影响获取值,需要频繁修改爬虫)
      • 将爬虫获取到天气信息,组装成字符串,方便微信发送

    二、微信发送信息

    • 应用模块wxpy,python操作微信的模块
      • 安装方式:pip install wxpy
      • 实例化对象,扫描登录
      • 给指定好友或者群组发送天气信息
      • 对好友或者群组设置自动回复(使用图灵机器人自动回复)

    三、tkinter模块添加GUI图形化界面

    • tkinter模块使用详细资料自己百度查询,这里就不多叙述

    四、打包exe文件

    话不多说上代码

    # -*- coding: utf-8 -*-
    # @Time    : 2019/3/22 21:53
    # @Author  : cd
    
    from tkinter import ttk
    import tkinter as tk
    import requests
    from lxml import etree
    from wxpy import *
    
    # 这里可以把天气ID字典放到别的文件中引入,这个随便都可以
    weatherCode = {'北京': '101010100', '海淀': '101010200', '朝阳': '101071201', '顺义': '101010400', '怀柔': '101010500',
                   '通州': '101010600', '昌平': '101010700', '延庆': '101010800', '丰台': '101010900', '石景山': '101011000',
                   '大兴': '101011100', '房山': '101011200', '密云': '101011300', '门头沟': '101011400', '平谷': '101011500',
                   '上海': '101020100', '闵行': '101020200', '宝山': '101020300', '嘉定': '101020500', '浦东南汇': '101020600',
                   '金山': '101020700', '青浦': '101020800', '松江': '101020900', '奉贤': '101021000', '崇明': '101021100',
                   '徐家汇': '101021200', '浦东': '101021300', '天津': '101030100', '武清': '101030200', '宝坻': '101030300',
                   '东丽': '101030400', '西青': '101030500', '北辰': '101030600', '宁河': '101030700', '汉沽': '101030800',
                   '静海': '101030900', '津南': '101031000', '塘沽': '101031100', '大港': '101031200', '蓟县': '101031400',
                   '重庆': '101040100', '永川': '101040200', '合川': '101040300', '南川': '101040400', '江津': '101040500',
                   '万盛': '101040600', '渝北': '101040700', '北碚': '101040800', '巴南': '101040900', '长寿': '101041000',
                   '黔江': '101041100', '万州': '101041300', '涪陵': '101041400', '开县': '101041500', '城口': '101041600',
                   '云阳': '101041700', '巫溪': '101041800', '奉节': '101041900', '巫山': '101042000', '潼南': '101042100',
                   '垫江': '101042200', '梁平': '101042300', '忠县': '101042400', '石柱': '101042500', '大足': '101042600',
                   '荣昌': '101042700', '铜梁': '101042800', '璧山': '101042900', '丰都': '101043000', '武隆': '101043100',
                   '彭水': '101043200', '綦江': '101043300', '酉阳': '101043400', '秀山': '101043600', '哈尔滨': '101050101',
                   '双城': '101050102', '呼兰': '101050103', '阿城': '101050104', '宾县': '101050105', '依兰': '101050106',
                   '巴彦': '101050107', '通河': '101050108', '方正': '101050109', '延寿': '101050110', '尚志': '101050111',
                   '五常': '101050112', '木兰': '101050113', '齐齐哈尔': '101050201', '讷河': '101050202', '龙江': '101050203',
                   '甘南': '101050204', '富裕': '101050205', '依安': '101050206', '拜泉': '101050207', '克山': '101050208',
                   '克东': '101050209', '泰来': '101050210', '牡丹江': '101050301', '海林': '101050302', '穆棱': '101050303',
                   '林口': '101050304', '绥芬河': '101050305', '宁安': '101050306', '东宁': '101050307', '佳木斯': '101050401',
                   '汤原': '101050402', '抚远': '101050403', '桦川': '101050404', '桦南': '101050405', '同江': '101050406',
                   '富锦': '101050407', '绥化': '101050501', '肇东': '101050502', '安达': '101050503', '海伦': '101050504',
                   '明水': '101050505', '望奎': '101050506', '兰西': '101050507', '青冈': '101050508', '庆安': '101050509',
                   '绥棱': '101050510', '黑河': '101050601', '嫩江': '101050602', '孙吴': '101050603', '逊克': '101050604',
                   '五大连池': '101050605', '北安': '101050606', '大兴安岭': '101050701', '塔河': '101050702', '漠河': '101050703',
                   '呼玛': '101050704', '呼中': '101050705', '新林': '101050706', '加格达奇': '101050708', '伊春': '101050801',
                   '乌伊岭': '101050802', '五营': '101050803', '铁力': '101050804', '嘉荫': '101050805', '大庆': '101050901',
                   '林甸': '101050902', '肇州': '101050903', '肇源': '101050904', '杜尔伯特': '101050905', '七台河': '101051002',
                   '勃利': '101051003', '鸡西': '101051101', '虎林': '101051102', '密山': '101051103', '鸡东': '101051104',
                   '鹤岗': '101051201', '绥滨': '101051202', '萝北': '101051203', '双鸭山': '101051301', '集贤': '101051302',
                   '宝清': '101051303', '饶河': '101051304', '友谊': '101051305', '长春': '101060101', '农安': '101060102',
                   '德惠': '101060103', '九台': '101060104', '榆树': '101060105', '双阳': '101060106', '吉林': '101060201',
                   '舒兰': '101060202', '永吉': '101060203', '蛟河': '101060204', '磐石': '101060205', '桦甸': '101060206',
                   '延吉': '101060301', '敦化': '101060302', '安图': '101060303', '汪清': '101060304', '和龙': '101060305',
                   '龙井': '101060307', '珲春': '101060308', '图们': '101060309', '四平': '101060401', '双辽': '101060402',
                   '梨树': '101060403', '公主岭': '101060404', '伊通': '101060405', '通化': '101060501', '梅河口': '101060502',
                   '柳河': '101060503', '辉南': '101060504', '集安': '101060505', '通化县': '101060506', '白城': '101060601',
                   '洮南': '101060602', '大安': '101060603', '镇赉': '101060604', '通榆': '101060605', '辽源': '101060701',
                   '东丰': '101060702', '东辽': '101060703', '松原': '101060801', '乾安': '101060802', '前郭': '101060803',
                   '长岭': '101060804', '扶余': '101060805', '白山': '101060901', '靖宇': '101060902', '临江': '101060903',
                   '东岗': '101060904', '长白': '101060905', '抚松': '101060906', '江源': '101060907', '沈阳': '101070101',
                   '辽中': '101070103', '康平': '101070104', '法库': '101070105', '新民': '101070106', '大连': '101070201',
                   '瓦房店': '101070202', '金州': '101070203', '普兰店': '101070204', '旅顺': '101070205', '长海': '101070206',
                   '庄河': '101070207', '鞍山': '101070301', '台安': '101070302', '岫岩': '101070303', '海城': '101070304',
                   '抚顺': '101070401', '新宾': '101070402', '清原': '101070403', '章党': '101070404', '本溪': '101070501',
                   '本溪县': '101070502', '桓仁': '101070504', '丹东': '101070601', '凤城': '101070602', '宽甸': '101070603',
                   '东港': '101070604', '锦州': '101070701', '凌海': '101070702', '义县': '101070704', '黑山': '101070705',
                   '北镇': '101070706', '营口': '101070801', '大石桥': '101070802', '盖州': '101070803', '阜新': '101070901',
                   '彰武': '101070902', '辽阳': '101071001', '辽阳县': '101071002', '灯塔': '101071003', '弓长岭': '101071004',
                   '铁岭': '101071101', '开原': '101071102', '昌图': '101071103', '西丰': '101071104', '调兵山': '101071105',
                   '凌源': '101071203', '喀左': '101071204', '北票': '101071205', '建平县': '101071207', '盘锦': '101071301',
                   '大洼': '101071302', '盘山': '101071303', '葫芦岛': '101071401', '建昌': '101071402', '绥中': '101071403',
                   '兴城': '101071404', '呼和浩特': '101080101', '土左旗': '101080102', '托县': '101080103', '和林': '101080104',
                   '清水河': '101080105', '呼市郊区': '101080106', '武川': '101080107', '包头': '101080201', '白云鄂博': '101080202',
                   '满都拉': '101080203', '土右旗': '101080204', '固阳': '101080205', '达茂旗': '101080206', '希拉穆仁': '101080207',
                   '乌海': '101080301', '集宁': '101080401', '卓资': '101080402', '化德': '101080403', '商都': '101080404',
                   '兴和': '101080406', '凉城': '101080407', '察右前旗': '101080408', '察右中旗': '101080409', '察右后旗': '101080410',
                   '四子王旗': '101080411', '丰镇': '101080412', '通辽': '101080501', '舍伯吐': '101080502', '科左中旗': '101080503',
                   '科左后旗': '101080504', '青龙山': '101080505', '开鲁': '101080506', '库伦': '101080507', '奈曼': '101080508',
                   '扎鲁特': '101080509', '巴雅尔吐胡硕': '101080511', '霍林郭勒': '101081108', '赤峰': '101080601', '阿鲁旗': '101080603',
                   '浩尔吐': '101080604', '巴林左旗': '101080605', '巴林右旗': '101080606', '林西': '101080607', '克什克腾': '101080608',
                   '翁牛特': '101080609', '岗子': '101080610', '喀喇沁': '101080611', '八里罕': '101080612', '宁城': '101080613',
                   '敖汉': '101080614', '宝国吐': '101080615', '鄂尔多斯': '101080701', '达拉特': '101080703', '准格尔': '101080704',
                   '鄂前旗': '101080705', '河南': '101080706', '伊克乌素': '101080707', '鄂托克': '101080708', '杭锦旗': '101080709',
                   '乌审旗': '101080710', '伊金霍洛': '101080711', '乌审召': '101080712', '东胜': '101080713', '临河': '101080801',
                   '五原': '101080802', '磴口': '101080803', '乌前旗': '101080804', '大佘太': '101080805', '乌中旗': '101080806',
                   '乌后旗': '101080807', '海力素': '101080808', '那仁宝力格': '101080809', '杭锦后旗': '101080810', '锡林浩特': '101080901',
                   '二连浩特': '101080903', '阿巴嘎': '101080904', '苏左旗': '101080906', '苏右旗': '101080907', '朱日和': '101080908',
                   '东乌旗': '101080909', '西乌旗': '101080910', '太仆寺': '101080911', '镶黄旗': '101080912', '正镶白旗': '101080913',
                   '正蓝旗': '101080914', '多伦': '101080915', '博克图': '101080916', '乌拉盖': '101080917', '海拉尔': '101081001',
                   '小二沟': '101081002', '阿荣旗': '101081003', '莫力达瓦': '101081004', '鄂伦春旗': '101081005', '鄂温克旗': '101081006',
                   '陈旗': '101081007', '新左旗': '101081008', '新右旗': '101081009', '满洲里': '101081010', '牙克石': '101081011',
                   '扎兰屯': '101081012', '额尔古纳': '101081014', '根河': '101081015', '图里河': '101081016', '高力板': '101080510',
                   '乌兰浩特': '101081101', '阿尔山': '101081102', '科右中旗': '101081103', '胡尔勒': '101081104', '扎赉特': '101081105',
                   '索伦': '101081106', '突泉': '101081107', '科右前旗': '101081109', '阿左旗': '101081201', '阿右旗': '101081202',
                   '额济纳': '101081203', '拐子湖': '101081204', '吉兰太': '101081205', '锡林高勒': '101081206', '头道湖': '101081207',
                   '中泉子': '101081208', '诺尔公': '101081209', '雅布赖': '101081210', '乌斯泰': '101081211', '孪井滩': '101081212',
                   '石家庄': '101090101', '井陉': '101090102', '正定': '101090103', '栾城': '101090104', '行唐': '101090105',
                   '灵寿': '101090106', '高邑': '101090107', '深泽': '101090108', '赞皇': '101090109', '无极': '101090110',
                   '平山': '101090111', '元氏': '101090112', '赵县': '101090113', '辛集': '101090114', '藁城': '101090115',
                   '晋州': '101090116', '新乐': '101090117', '鹿泉': '101090118', '保定': '101090201', '满城': '101090202',
                   '阜平': '101090203', '徐水': '101090204', '唐县': '101090205', '高阳': '101090206', '容城': '101090207',
                   '涞源': '101090209', '望都': '101090210', '安新': '101090211', '易县': '101090212', '曲阳': '101090214',
                   '蠡县': '101090215', '顺平': '101090216', '雄县': '101090217', '涿州': '101090218', '定州': '101090219',
                   '安国': '101090220', '高碑店': '101090221', '涞水': '101090222', '定兴': '101090223', '清苑': '101090224',
                   '博野': '101090225', '张家口': '101090301', '宣化': '101090302', '张北': '101090303', '康保': '101090304',
                   '沽源': '101090305', '尚义': '101090306', '蔚县': '101090307', '阳原': '101090308', '怀安': '101090309',
                   '万全': '101090310', '怀来': '101090311', '涿鹿': '101090312', '赤城': '101090313', '崇礼': '101090314',
                   '承德': '101090402', '承德县': '101090403', '兴隆': '101090404', '平泉': '101090405', '滦平': '101090406',
                   '隆化': '101090407', '丰宁': '101090408', '宽城': '101090409', '围场': '101090410', '唐山': '101090501',
                   '丰南': '101090502', '丰润': '101090503', '滦县': '101090504', '滦南': '101090505', '乐亭': '101090506',
                   '迁西': '101090507', '玉田': '101090508', '唐海': '101090509', '遵化': '101090510', '迁安': '101090511',
                   '曹妃甸': '101090512', '廊坊': '101090601', '固安': '101090602', '永清': '101090603', '香河': '101090604',
                   '大城': '101090605', '文安': '101090606', '大厂': '101090607', '霸州': '101090608', '三河': '101090609',
                   '沧州': '101090701', '青县': '101090702', '东光': '101090703', '海兴': '101090704', '盐山': '101090705',
                   '肃宁': '101090706', '南皮': '101090707', '吴桥': '101090708', '献县': '101090709', '孟村': '101090710',
                   '泊头': '101090711', '任丘': '101090712', '黄骅': '101090713', '河间': '101090714', '沧县': '101090716',
                   '衡水': '101090801', '枣强': '101090802', '武邑': '101090803', '武强': '101090804', '饶阳': '101090805',
                   '安平': '101090806', '故城': '101090807', '景县': '101090808', '阜城': '101090809', '冀州': '101090810',
                   '深州': '101090811', '邢台': '101090901', '临城': '101090902', '内丘': '101090904', '柏乡': '101090905',
                   '隆尧': '101090906', '南和': '101090907', '宁晋': '101090908', '巨鹿': '101090909', '新河': '101090910',
                   '广宗': '101090911', '平乡': '101090912', '威县': '101090913', '清河': '101090914', '临西': '101090915',
                   '南宫': '101090916', '沙河': '101090917', '任县': '101090918', '邯郸': '101091001', '峰峰': '101091002',
                   '临漳': '101091003', '成安': '101091004', '大名': '101091005', '涉县': '101091006', '磁县': '101091007',
                   '肥乡': '101091008', '永年': '101091009', '邱县': '101091010', '鸡泽': '101091011', '广平': '101091012',
                   '馆陶': '101091013', '魏县': '101091014', '曲周': '101091015', '武安': '101091016', '秦皇岛': '101091101',
                   '青龙': '101091102', '昌黎': '101091103', '抚宁': '101091104', '卢龙': '101091105', '北戴河': '101091106',
                   '太原': '101100101', '清徐': '101100102', '阳曲': '101100103', '娄烦': '101100104', '古交': '101100105',
                   '尖草坪区': '101100106', '小店区': '101100107', '大同': '101100201', '阳高': '101100202', '大同县': '101100203',
                   '天镇': '101100204', '广灵': '101100205', '灵丘': '101100206', '浑源': '101100207', '左云': '101100208',
                   '阳泉': '101100301', '盂县': '101100302', '平定': '101100303', '晋中': '101100401', '榆次': '101100402',
                   '榆社': '101100403', '左权': '101100404', '和顺': '101100405', '昔阳': '101100406', '寿阳': '101100407',
                   '太谷': '101100408', '祁县': '101100409', '平遥': '101100410', '灵石': '101100411', '介休': '101100412',
                   '长治': '101100501', '黎城': '101100502', '屯留': '101100503', '潞城': '101100504', '襄垣': '101100505',
                   '平顺': '101100506', '武乡': '101100507', '沁县': '101100508', '长子': '101100509', '沁源': '101100510',
                   '壶关': '101100511', '晋城': '101100601', '沁水': '101100602', '阳城': '101100603', '陵川': '101100604',
                   '高平': '101100605', '泽州': '101100606', '临汾': '101100701', '曲沃': '101100702', '永和': '101100703',
                   '隰县': '101100704', '大宁': '101100705', '吉县': '101100706', '襄汾': '101100707', '蒲县': '101100708',
                   '汾西': '101100709', '洪洞': '101100710', '霍州': '101100711', '乡宁': '101100712', '翼城': '101100713',
                   '侯马': '101100714', '浮山': '101100715', '安泽': '101100716', '古县': '101100717', '运城': '101100801',
                   '临猗': '101100802', '稷山': '101100803', '万荣': '101100804', '河津': '101100805', '新绛': '101100806',
                   '绛县': '101100807', '闻喜': '101100808', '垣曲': '101100809', '永济': '101100810', '芮城': '101100811',
                   '夏县': '101100812', '平陆': '101100813', '朔州': '101100901', '平鲁': '101100902', '山阴': '101100903',
                   '右玉': '101100904', '应县': '101100905', '怀仁': '101100906', '忻州': '101101001', '定襄': '101101002',
                   '五台县': '101101003', '河曲': '101101004', '偏关': '101101005', '神池': '101101006', '宁武': '101101007',
                   '代县': '101101008', '繁峙': '101101009', '五台山': '101101010', '保德': '101101011', '静乐': '101101012',
                   '岢岚': '101101013', '五寨': '101101014', '原平': '101101015', '吕梁': '101101100', '离石': '101101101',
                   '临县': '101101102', '兴县': '101101103', '岚县': '101101104', '柳林': '101101105', '石楼': '101101106',
                   '方山': '101101107', '交口': '101101108', '中阳': '101101109', '孝义': '101101110', '汾阳': '101101111',
                   '文水': '101101112', '交城': '101101113', '西安': '101110101', '长安': '101110102', '临潼': '101110103',
                   '蓝田': '101110104', '周至': '101110105', '户县': '101110106', '高陵': '101110107', '咸阳': '101110200',
                   '三原': '101110201', '礼泉': '101110202', '永寿': '101110203', '淳化': '101110204', '泾阳': '101110205',
                   '武功': '101110206', '乾县': '101110207', '彬县': '101110208', '长武': '101110209', '旬邑': '101110210',
                   '兴平': '101110211', '延安': '101110300', '延长': '101110301', '延川': '101110302', '子长': '101110303',
                   '宜川': '101110304', '富县': '101110305', '志丹': '101110306', '安塞': '101110307', '甘泉': '101110308',
                   '洛川': '101110309', '黄陵': '101110310', '黄龙': '101110311', '吴起': '101110312', '榆林': '101110401',
                   '府谷': '101110402', '神木': '101110403', '佳县': '101110404', '定边': '101110405', '靖边': '101110406',
                   '横山': '101110407', '米脂': '101110408', '子洲': '101110409', '绥德': '101110410', '吴堡': '101110411',
                   '清涧': '101110412', '榆阳': '101110413', '渭南': '101110501', '华县': '101110502', '潼关': '101110503',
                   '大荔': '101110504', '白水': '101110505', '富平': '101110506', '蒲城': '101110507', '澄城': '101110508',
                   '合阳': '101110509', '韩城': '101110510', '华阴': '101110511', '商洛': '101110601', '洛南': '101110602',
                   '柞水': '101110603', '商州': '101110604', '镇安': '101110605', '丹凤': '101110606', '商南': '101110607',
                   '山阳': '101110608', '安康': '101110701', '紫阳': '101110702', '石泉': '101110703', '汉阴': '101110704',
                   '旬阳': '101110705', '岚皋': '101110706', '平利': '101110707', '白河': '101110708', '镇坪': '101110709',
                   '宁陕': '101110710', '汉中': '101110801', '略阳': '101110802', '勉县': '101110803', '留坝': '101110804',
                   '洋县': '101110805', '城固': '101110806', '西乡': '101110807', '佛坪': '101110808', '宁强': '101110809',
                   '南郑': '101110810', '镇巴': '101110811', '宝鸡': '101110901', '千阳': '101110903', '麟游': '101110904',
                   '岐山': '101110905', '凤翔': '101110906', '扶风': '101110907', '眉县': '101110908', '太白': '101110909',
                   '凤县': '101110910', '陇县': '101110911', '陈仓': '101110912', '铜川': '101111001', '耀县': '101111002',
                   '宜君': '101111003', '耀州': '101111004', '杨凌': '101111101', '济南': '101120101', '长清': '101120102',
                   '商河': '101120103', '章丘': '101120104', '平阴': '101120105', '济阳': '101120106', '青岛': '101120201',
                   '崂山': '101120202', '即墨': '101120204', '胶州': '101120205', '胶南': '101120206', '莱西': '101120207',
                   '平度': '101120208', '淄博': '101120301', '淄川': '101120302', '博山': '101120303', '高青': '101120304',
                   '周村': '101120305', '沂源': '101120306', '桓台': '101120307', '临淄': '101120308', '德州': '101120401',
                   '武城': '101120402', '临邑': '101120403', '陵县': '101120404', '齐河': '101120405', '乐陵': '101120406',
                   '庆云': '101120407', '平原': '101120408', '宁津': '101120409', '夏津': '101120410', '禹城': '101120411',
                   '烟台': '101120501', '莱州': '101120502', '长岛': '101120503', '蓬莱': '101120504', '龙口': '101120505',
                   '招远': '101120506', '栖霞': '101120507', '福山': '101120508', '牟平': '101120509', '莱阳': '101120510',
                   '海阳': '101120511', '潍坊': '101120601', '青州': '101120602', '寿光': '101120603', '临朐': '101120604',
                   '昌乐': '101120605', '昌邑': '101120606', '安丘': '101120607', '高密': '101120608', '诸城': '101120609',
                   '济宁': '101120701', '嘉祥': '101120702', '微山': '101120703', '鱼台': '101120704', '兖州': '101120705',
                   '金乡': '101120706', '汶上': '101120707', '泗水': '101120708', '梁山': '101120709', '曲阜': '101120710',
                   '邹城': '101120711', '泰安': '101120801', '新泰': '101120802', '肥城': '101120804', '东平': '101120805',
                   '宁阳': '101120806', '临沂': '101120901', '莒南': '101120902', '沂南': '101120903', '苍山': '101120904',
                   '临沭': '101120905', '郯城': '101120906', '蒙阴': '101120907', '平邑': '101120908', '费县': '101120909',
                   '沂水': '101120910', '菏泽': '101121001', '鄄城': '101121002', '郓城': '101121003', '东明': '101121004',
                   '定陶': '101121005', '巨野': '101121006', '曹县': '101121007', '成武': '101121008', '单县': '101121009',
                   '滨州': '101121101', '博兴': '101121102', '无棣': '101121103', '阳信': '101121104', '惠民': '101121105',
                   '沾化': '101121106', '邹平': '101121107', '东营': '101121201', '河口': '101121202', '垦利': '101121203',
                   '利津': '101121204', '广饶': '101121205', '威海': '101121301', '文登': '101121302', '荣成': '101121303',
                   '乳山': '101121304', '成山头': '101121305', '石岛': '101121306', '枣庄': '101121401', '薛城': '101121402',
                   '峄城': '101121403', '台儿庄': '101121404', '滕州': '101121405', '日照': '101121501', '五莲': '101121502',
                   '莒县': '101121503', '莱芜': '101121601', '聊城': '101121701', '冠县': '101121702', '阳谷': '101121703',
                   '高唐': '101121704', '茌平': '101121705', '东阿': '101121706', '临清': '101121707', '莘县': '101121709',
                   '乌鲁木齐': '101130101', '小渠子': '101130103', '达坂城': '101130105', '乌鲁木齐牧试站': '101130108', '天池': '101130109',
                   '白杨沟': '101130110', '克拉玛依': '101130201', '乌尔禾': '101130202', '白碱滩': '101130203', '石河子': '101130301',
                   '炮台': '101130302', '莫索湾': '101130303', '昌吉': '101130401', '呼图壁': '101130402', '米泉': '101130403',
                   '阜康': '101130404', '吉木萨尔': '101130405', '奇台': '101130406', '玛纳斯': '101130407', '木垒': '101130408',
                   '蔡家湖': '101130409', '吐鲁番': '101130501', '托克逊': '101130502', '鄯善': '101130504', '库尔勒': '101130601',
                   '轮台': '101130602'}
    
    # 实例化,微信扫描登录
    # cache_path=True 保存缓存登录信息
    bot = Bot(cache_path='wxpy.pkl', qr_path='qr.png')
    # 调用图灵机器人API,发送消息并获得机器人的回复
    tuling = Tuling(api_key='be43344e543d419198e4bc17c9511c5f')
    
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'}
    
    # 获取天气信息
    def capture_weather(city_code):
        url_weather = f'http://www.weather.com.cn/weather/{city_code}.shtml'
        weather_info = dict()
    
        response = requests.get(url=url_weather, headers=headers)
        # 数据清洗
        et = etree.HTML(response.content.decode('utf-8'))
        # 日期
        today = et.xpath('//div[@id="7d"]/ul/li[1]/h1/text()')[0]
        weather_info['日期'] = today
        # 天气
        weather = et.xpath('//div[@id="7d"]/ul/li[1]/p/text()')[0]
        weather_info['天气'] = weather
        # 温度
        temperature = et.xpath('//div[@id="7d"]/ul/li[1]/p[2]/i/text()')[0]
        weather_info['温度'] = temperature
        # 风级
        wind = et.xpath('//div[@id="7d"]/ul/li[1]/p[3]/i/text()')[0]
        weather_info['风级'] = wind
        # 风向
        wind_direction = et.xpath('//div[@id="7d"]/ul/li[1]/p[3]/em/span/@title')[0]
        weather_info['风向'] = wind_direction
        # 穿衣
        dress = et.xpath('//li[@id="chuanyi"]/a/p/text()')[0]
        weather_info['温馨提示'] = dress
    
        return weather_info
    
    # 爬取的天气信息重新组装
    def process_info(weather_info):
        info = ''''''
        for key, value in weather_info.items():
            one = key + ':' + value + '\n'
            info += one
    
        return info
    
    # 发送消息给好友
    def reply_friend(info, friendName):
        # 扫描登录
        # cache_path=True 保存缓存登录信息
        # bot = Bot(cache_path='wxpy.pkl',qr_path='qr.png')
        # 获取好友
        girl_friend = bot.search(friendName)[0]
        # 发送消息
        girl_friend.send(info)
    
    
    # 西安 101110101
    # 获取城市信息
    def search_city():
        city = entry.get()
        global city_code
        city_code = weatherCode[city]
        text.insert(tk.END, "{} 天气ID:{}".format(city, city_code))
        text.see(tk.END)
        text.update()
    
    
    def search_friends():
        # 获取好友昵称
        global friendName
        friendName = entry2.get()
        text.insert(tk.END, "好友昵称:{}".format(friendName))
        text.see(tk.END)
        text.update()
    
        # 获取天气信息
        weather_info = capture_weather(city_code)
        global info
        info = process_info(weather_info)
    
        text.insert(tk.END, "天气信息:{}".format(info))
        text.see(tk.END)
        text.update()
    
    
    def auto_reply():
        # 开始运行
        girl_friend = bot.search(friendName)[0]
    
        # 回复指定好友
        @bot.register(girl_friend)
        def auto_reply_all(msg):
            tuling.do_reply(msg)
    
        text.insert(tk.END, "对好友:{}, 自动回复功能已开启!".format(friendName))
        text.see(tk.END)
        text.update()
    
        bot.join()
    
    
    def affirm_time():
        global time_num
        time_task = timer.get()
        # ("1小时", "1天", "1秒", "5秒")
        if time_task == "1小时":
            time_num = 1000 * 3600
        if time_task == "1天":
            time_num = 1000 * 3600 * 24
        if time_task == "1秒":
            time_num = 1000
        if time_task == "5秒":
            time_num = 1000 * 5
    
        text.insert(tk.END, "定时时间已设置:{}!".format(time_task))
        text.see(tk.END)
        text.update()
    
        text.insert(tk.END, "确认无误请点击 发送天气!")
        text.see(tk.END)
        text.update()
    
    
    def sent_weather():
        reply_friend(info, friendName)
    
        text.insert(tk.END, "好友: {}, 天气信息已发送!".format(friendName))
        text.see(tk.END)
        text.update()
        # 添加延时任务,tkinter自动的延时函数after()
        root.after(time_num, sent_weather)
    
    
    # 创建界面
    root = tk.Tk()
    # 添加标题
    root.title('WeChat')
    # 设置窗口大小 x 小写x连,不能用乘号 后面两位是x,y坐标,固定初始位置
    root.geometry('545x460+400+150')
    # 固定大小
    root.resizable(height=False, width=False)
    
    # 城市 标签控件
    label = tk.Label(root, text='请输入城市名:', font=('华文行楷', 15))
    # 标签定位 grid 网格式定位
    label.grid(row=0, column=0, sticky=tk.W)  # 默认 row=0,column=0
    # 输入框
    entry = tk.Entry(root, font=('隶书', 15), width=38)
    # 定位 第0行 第1列
    entry.grid(row=0, column=1, sticky=tk.W)
    # command 点击触发方法  搜索歌曲
    button5 = tk.Button(root, text='搜索城市', font=('隶书', 15), fg='green', command=search_city)
    # 定位 sticky 对齐方式 W E N S  东南西北
    button5.grid(row=0, column=1, sticky=tk.E)
    
    # 好友 标签控件
    label2 = tk.Label(root, text='请输入好友昵称:', font=('华文行楷', 15))
    # 标签定位 grid 网格式定位
    label2.grid(row=1, column=0, sticky=tk.W)  # 默认 row=0,column=0
    # 输入框
    entry2 = tk.Entry(root, font=('隶书', 15), width=38)
    # 定位 第0行 第1列
    entry2.grid(row=1, column=1, sticky=tk.W)
    # command 点击触发方法  搜索歌曲
    button2 = tk.Button(root, text='搜索好友', font=('隶书', 15), fg='green', command=search_friends)
    # 定位 sticky 对齐方式 W E N S  东南西北
    button2.grid(row=1, column=1, sticky=tk.E)
    
    # 列表框
    text = tk.Listbox(root, font=('楷书', 12), width=68, heigh=18)
    # 定位 columnspan 组件横跨的列数
    text.grid(row=2, columnspan=2)
    
    # 标签控件
    label1 = tk.Label(root, text='设置定时时间:', font=('华文行楷', 15))
    # 标签定位 grid 网格式定位
    label1.grid(row=3, column=0, sticky=tk.W)  # 默认 row=0,column=0
    
    # 定时任务下拉框
    # 窗体自带的文本,新建一个值
    timer = tk.StringVar()
    comboxlist = ttk.Combobox(root, width=12, textvariable=timer)  # 初始化
    comboxlist["values"] = ("1小时", "1天", "1秒", "5秒")
    comboxlist.grid(column=1, row=3, sticky=tk.W)
    comboxlist.current(0)  # 选择第一个
    
    # 点击按钮
    button = tk.Button(root, text='确认时间', font=('隶书', 15), fg='red', command=affirm_time)
    # 定位 sticky 对齐方式 W E N S  东南西北
    button.grid(row=3, column=1, sticky=tk.E)
    
    # 点击按钮
    button = tk.Button(root, text='自动回复', font=('隶书', 15), fg='blue', command=auto_reply)
    # 定位 sticky 对齐方式 W E N S  东南西北
    button.grid(row=4, column=0, sticky=tk.W)
    
    # command 点击触发方法
    button1 = tk.Button(root, text='发送天气', font=('隶书', 15), fg='blue', command=sent_weather)
    # 定位 sticky 对齐方式 W E N S  东南西北
    button1.grid(row=4, column=1, sticky=tk.E)
    
    # 显示界面
    root.mainloop()
    
    
    展开全文
  • 小猪的Python学习之旅 —— 19.Python微信自动好友验证,自动回复,发送群聊链接 标签:Python 一句话概括本文: 上一节利用itchat这个库,做了小宇宙早报的监测与转发, 本节新增自动过滤加好友申请,根据...
  • 前言另外此文章首先发在了csdn有兴趣的可以去看一下:https://blog.csdn.net/qq_27399/article/details/105767682最近在学习python,发现一个微信自动发消息的小demo感觉很有意思,试了一下,不成功,因为demo中用的...
  • 自动通过好友验证以及计数 1.设置通过好友验证时长,一般为2-3秒 2.设置启用新好友信息之后,通过的新好友自动发送保存好的文字/表情 3.好友计数指的是已经添加通过验证的好友人数以及正在等待通过的人数 二...
  • 3.微信自动回复及发送图片 4.获取微信签名并进行词云分析 基础性文章,希望对您有所帮助,后面将结合舆情分析、朋友圈等接口进行更一步的讲解。如果文章中存在错误或不足之处,还请海涵~ 参考文章: ...
  • 自动通过好友- 自动通过好友并自动回复自定义消息 好友关键字- 关键字精准和模糊匹配回复自定义消息 自动收款- 自动接收转账并回复自定义信息,可根据转账金额回复对应的消息 同步转发-同步转发多种消息给好友或...
  • python微信自动回复

    2018-11-29 17:58:00
    模块是itchat 下载:命令行输入 pip install itchat import itchat #导入itchat模块 itchat.auto_login() #登陆... ...users = itchat.search_friends(name=u'通讯录备注名')#找到UserNameuserName = users[0]['Use...
  • 邮箱的一些强大功能就在这里,我们能对很多的项目进行设置。在“常规”项的最下面...假期自动回复我们用的就比较常见了,特别是网站管理或者公司一般会设置上启用,然后输入一些自动回复,可以介绍公司信息或者一些...
  • itchat微信自动回复消息

    万次阅读 2017-02-18 11:07:46
    使用之前需要准备的工作:安装itchat API easy_install itchat#coding=utf8 import itchat,time ...##自动回复的功能 @itchat.msg_register(itchat.content.TEXT) def text_reply(msg): return msg['Tex
  • 微信自动回复机器人

    千次阅读 2017-12-30 17:04:34
    在图灵机器人网站上注册即可,利用itchat登录网页版微信,当收到消息时,利用图灵机器人去回复,可以查询天气预报,讲笑话,查快递单号,百科等一些信息,比较好玩。 实现代码 如下: #coding=utf8 import ...
  • //由于本人闲来无事,为了打发时间,把以前项目的中一些知识点整理一下,下面是 获取通讯录的相关知识点,内容简单,希望对各位有所帮助,有何问题,欢迎留言(PS:虽然不一定回复您或者帮您解决,但好歹您老人家不要...
  • 使用python现成的模块 itchat,可以实现,微信机器人的自动回复 其内部原理,是模拟了web版微信的登录,然后进行消息的接收发送,并不是只能用python实现,其他后端语言都可以做到 下面是使用例子 #coding=...
  • 怎么做一个微信自动回复的智能聊天机器人? wx微信简单话术群消息同步机器人,不超过50行代码,简单明了效率高。分享出来与大家一起学习进步。 工具 先安装微信特定版本3.0.0.57,后打开WeiChatTool.exe运行 使用...
  • 微信公众平台提供了三种消息回复的格式,即文本回复、音乐回复和图文回复,在这一篇文章中,我们将对这三种消息回复的格式做一下简单讲解,然后封装成函数,以供读者使用。 二、思路分析 对于每一个POST请求,...
  • 用python写一个微信自动回复

    千次阅读 2018-02-26 11:57:52
    最简单的一个小demo,可以自动回复表情,文本,语音不支持,群发不支持。先下载一个python库itchat# coding:utf-8 import itchat from itchat.content import* import re @itchat.msg_register([TEXT]) def text_...
  • 本文以新年祝福为例, 基于python的第三方库itchat, 实现微信祝福分组群发和自动回复好友祝福的功能。 这里的分组发送实现原理是这样的, 首先你想群发消息给谁, 就把谁拉到一个群聊里,然后代码遍历群聊里的所有...
  • 微信ipdae协议自动回复。 安卓微信的api,个人微信开发API协议,微信 ipad sdk,微信ipad协议,微信web版接口api,微信网页版接口,微信电脑版sdk,微信开发sdk,微信开发API,微信协议,微信接口文档sdk,替代微信...
  • 参考文章http://www.nulll.me/index.php/archives/72.html ... 我一个同学向我表示人类的本质是复读机,就一直重复我的话,然后我就一”怒“之下搜了一下微信自动回复机器人,然后发现了神奇的itchat库,利用这个库...
  • Ideas 公共通讯录

    2008-04-12 14:38:00
    有时候手机被盗了,结果自己辛辛苦苦积攒了许多年的通讯录就没有了;有时候想要发邮件给某某,却发现自己的这个邮箱的通讯录没有他(或她)的邮箱,无奈之下只好登录自己的其他邮箱;有时候自己对某人发短信,发了...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,203
精华内容 881
关键字:

自动回复通讯录