1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > python-定时给指定微信女朋友发送天气预报和每日一句自动聊天抢红包抢票

python-定时给指定微信女朋友发送天气预报和每日一句自动聊天抢红包抢票

时间:2024-03-10 22:01:14

相关推荐

python-定时给指定微信女朋友发送天气预报和每日一句自动聊天抢红包抢票

wxpy: 用 Python 玩微信

Python定时自动给微信好友发送天气预报

# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom wxpy import *import requestsfrom datetime import datetimeimport timefrom apscheduler.schedulers.blocking import BlockingScheduler # 定时框架from urllib.request import urlopenfrom bs4 import BeautifulSoupbot = Bot(cache_path=True) # 登陆微信tuling = Tuling(api_key='4a0488cdce684468b95591a641f0971d') # 机器人api# 单个好友# friend = bot.friends().search('harrison')[0]#好友的微信昵称,或者你存取的备注#location = friend.city# print(friend)# print(friend.city)# 好友列表friendlist = [ensure_one(bot.search(remark_name='father')),bot.friends().search(remark_name='d')[0],bot.friends().search(remark_name='申')[:],bot.friends().search(remark_name='harrison')[0]]print(friendlist)def get_weather(location):# 准备url地址,得出location的结果path = 'http://api./telematics/v3/weather?location=%s&output=json&ak=TueGDhCvwI6fOrQnLM0qmXxY9N0OkOiQ&callback=?'url = path % locationresponse = requests.get(url)result = response.json()str1 = ' 你的城市: %s\n' % location# 如果城市错误就按照成都的结果if result['error'] != 0:str1 = ' 你的地区%s获取失败,请修改资料。默认参数:深圳\n' % locationlocation = '深圳'url = path % locationresponse = requests.get(url)result = response.json()str0 = (' 这是明天的天气预报!来自贴心的Harrison\n')results = result['results']# 取出数据字典data1 = results[0]# 取出pm2.5值pm25 = data1['pm25']str2 = ' PM2.5 : %s ' % pm25# 将字符串转换为整数 否则无法比较大小pm25 = int(pm25)if pm25 == '':pm25 = 0# 通过pm2.5的值大小判断污染指数if 0 <= pm25 < 35:pollution = '优'elif 35 <= pm25 < 75:pollution = '良'elif 75 <= pm25 < 115:pollution = '轻度污染'elif 115 <= pm25 < 150:pollution = '中度污染'elif 150 <= pm25 < 250:pollution = '重度污染'elif pm25 >= 250:pollution = '严重污染'str3 = ' 空气指数: %s\n' % pollutionresult1 = results[0]weather_data = result1['weather_data']data = weather_data[1]datetime = data['date']temperature = data['temperature']str4 = ' 明天温度: %s%s\n' % (datetime, temperature)wind = data['wind']str5 = ' 风向 : %s\n' % windweather = data['weather']str6 = ' 天气 : %s\n' % weather# str7 =' 温度 : %s\n' % data['temperature']message = data1['index']str8 = ' 穿衣 : %s\n' % message[0]['des']#str9 =' 我很贴心: %s\n' % message[2]['des']#str10 =' 运动 : %s\n' % message[3]['des']str11 = ' 紫外线 : %s\n' % message[4]['des']#str12="\n 请注意身体~\n"str = str0 + str1 + str2 + str3 + str4 + str5 + str6 + str8 + str11return strdef get_iciba():url = "/dsapi/"r = requests.get(url)content = r.json()['content']note = r.json()['note']str = ' 每日一句:\n' + content + '\n' + note + '\n'return str# 发送函数def send_message():for i in range(len(friendlist)):friend = friendlist[i]location = friend.cityprint(i + 1, '/%s' % len(friendlist), ' 姓名:%s' %friend, ' 地区:%s' % location)text = get_weather(friend.city) + get_iciba() + ' 好梦~'friend.send(text)# 发送成功通知我bot.file_helper.send(friend)bot.file_helper.send('发送完毕')return# 执行程序时直接发送# send_message()# 定时器print('start')sched = BlockingScheduler()sched.add_job(send_message, 'cron', day_of_week='0-6',hour=23, minute=00) # 设定发送的时间sched.start()

自动聊天抢红包抢票

# -*- coding: utf-8 -*-'''这一次对上一个demo进行了扩充主要是添加了tuling机器人的自动回复以及让python进程保持且可以调试主要还是归功于wxpy的embed()函数。。。tulingKey需要自己申请很简单,上网站注册一下账号就ok了下面给出图灵网址:/然后就是wxpy的灵活使用,详情可以参照官网的API文档网址:http://wxpy.readthedocs.io/zh/latest/index.html然后接下来就是我写的一个小例子主要功能有1、单人聊天消息反馈(备注在代码里改,懒得写交互了,反正大家都懂得)2、单人聊天消息发送(根据输入的备注,这里写了简单的交互,没写exception处理)3、图灵自动聊天(可以通过关闭注册函数来关闭或者开启)注意此代码不可直接复制粘贴:1、需要自己申请tulingkey赋值2、需要指定进程保持时候和谁通信当然也可以自己做修改自由发挥!'''from __future__ import unicode_literalsfrom wxpy import *import requestsfrom threading import Timerfrom tkinter import *tulingKey = 'xxxxx'itchat = Bot(console_qr=2,cache_path="botoo.pkl")friend = itchat.friends().search(name = u'xxxx')tuling = Tuling(api_key=tulingKey)def getNews():url = "/dsapi/"r = requests.get(url)content = r.json()['content']note = r.json()['note']return content, note#tuling自动回复的消息注册def reply(msg):return tuling.do_reply(msg)#接受到消息后的打印@itchat.register(msg_types=TEXT)def printMsg(msg): print(msg)print('tuling自动回复消息---'+reply(msg))#发送每日一句消息函数def sendNews():try:#这里是备注printcontent = getNews()message1 = str(content[0])message2 = str(content[1])print('--------------今日内容:-------------\n'+message1+'\n'+message2+"\n---------------------------------")# message3 = "进行最后一项测试embed()"print('----当前friend对象为:'+str(friend))for index,item in enumerate(friend):rightMark = Truewhile rightMark:print("---------------将要发送给 "+str(item)+" ing,index="+str(index)+' 是否发送?')order = input("-----------------请输入指令(1是2否3退出当前操作循环):")order = int(order)if(order == 1):rightMark = Falseitem.send(message1)item.send(message2)print("----------消息发送成功----------------")elif(order ==2):rightMark = Falseprint("----------消息发送操作被忽略-----------")continueelif(order ==3):rightMark = Falseprint("----------消息发送程序退出------------")breakelse:print("-------指令错误,请重新输入!") except:errorMessage = "BugBugBug!"for index,item in enumerate(friend):item.send(errorMessage)def sendMessage():name = input("请输入好友备注:")friend = itchat.friends().search(name = name)if(len(friend)>0):print("找寻到备注为"+name+"的好友\n"+str(friend)+"\n如果存在多个该备注好友,默认选择第一个人发送")sendMessageByFriend(friend[0])else:print("未找到备注为:"+name+"的好友!")def sendMessageByFriend(friend):rightMark = Truewhile rightMark:mess = input("------请输入您要发的信息:")order = input("----------即将发送的信息为:"+mess+" 请选择是否发送 0是1否--------")order = int(order)if(order == 0):friend.send(mess)print("----------消息已成功发送(注意此处无catch)-------")rightMark = Falseelif(order ==1):print("----------消息未发送--------")rightMark = Falseelse:print("---------指令错误,请重新输入!")if __name__ == "__main__":# sendNews()embed()

每日一句

# -*- coding: utf-8 -*-'''这是一个用来测试微信自动发送消息的demo参考了一篇博客博客地址:/botoo/p/8622379.html恩,主要就是用到了一个微信库--wxpy安装很简单 pip install wxpy下面就开始吧主要就两个函数1、getNews();用以获取信息2、sendNews();用以发送信息我这里发送消息用的是for循环本意是群发,但是!但是!但是!程序发的太快会被微信禁掉,大概40个人左右就会被禁,以后可以试试sleep一下。另外vscode中自定义python编译器:Ctrl+shift+p, 选择 python: Select Interpreter'''from __future__ import unicode_literalsfrom wxpy import *import requestsfrom threading import Timeritchat = Bot(console_qr=2,cache_path="botoo.pkl")def getNews():url = "/dsapi/"r = requests.get(url)content = r.json()['content']note = r.json()['note']return content, notedef sendNews():try:#这里是备注friend = itchat.friends().search(name = u'xxx')content = getNews()print(content)message1 = str(content[0])message2 = str(content[1])message3 = "xxx"print(friend)for index,item in enumerate(friend):print("发送给 "+str(item)+" ing,index="+str(index))item.send(message1)item.send(message2)item.send(message3)t = Timer(86400,sendNews)t.start()except:errorMessage = "xxx"for index,item in enumerate(friend):item.send(errorMessage)if __name__ == "__main__":sendNews()

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。