wxpy: 用 Python 玩微信

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

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from wxpy import *
import requests
from datetime import datetime
import time
from apscheduler.schedulers.blocking import BlockingScheduler  # 定时框架
from urllib.request import urlopen
from 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.map.baidu.com/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 = "http://open.iciba.com/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了
下面给出图灵网址:http://www.tuling123.com/然后就是wxpy的灵活使用,详情可以参照官网的API文档
网址:http://wxpy.readthedocs.io/zh/latest/index.html然后接下来就是我写的一个小例子
主要功能有
1、单人聊天消息反馈(备注在代码里改,懒得写交互了,反正大家都懂得)
2、单人聊天消息发送(根据输入的备注,这里写了简单的交互,没写exception处理)
3、图灵自动聊天(可以通过关闭注册函数来关闭或者开启)注意此代码不可直接复制粘贴:
1、需要自己申请tulingkey赋值
2、需要指定进程保持时候和谁通信
当然也可以自己做修改自由发挥!
'''from __future__ import unicode_literals
from wxpy import *
import requests
from threading import Timer
from 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 = "http://open.iciba.com/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
参考了一篇博客
博客地址:http://www.cnblogs.com/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_literals
from wxpy import *
import requests
from threading import Timeritchat = Bot(console_qr=2,cache_path="botoo.pkl")
def getNews():url = "http://open.iciba.com/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()

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

  1. python发微信提醒天气_python-定时给指定微信好友发送天气预报和每日一句

    参考链接 wxpy: 用 Python 玩微信 Python定时自动给微信好友发送天气预报 源码 weather.py from wxpy import * import requests from ...

  2. python自动发微信天气预报_【教程】Python微信定时自动给女朋友发送天气预报

    原标题:[教程]Python微信定时自动给女朋友发送天气预报 先上效果图 主要思路 1.从wxpy获取好友列表 2.创建定时器 3.定时器触发函数 4.函数执行,遍历好友列表 5.好友对象执行带参函数 ...

  3. python发微信提醒天气_基于Python实现定时自动给微信好友发送天气预报

    效果图 from wxpyimport * import requests from datetimeimport datetime import time from apscheduler.sche ...

  4. python发送文件给微信好友_基于Python实现定时自动给微信好友发送天气预报

    效果图 from wxpyimport * import requests from datetimeimport datetime import time from apscheduler.sche ...

  5. python发送文件给微信好友_python获取天气接口给指定微信好友发天气预报

    先看下效果图: 用到的模块: PyMySQL requests threading wxpy 要实现上面的示例,首先是有两大块地方 获取天气信息 通过微信将天气信息发送出去 而获取天气信息又包括几个小 ...

  6. 每天定时给你的女朋友发送睡前小故事其二

    我们在文章<每天定时给你的女朋友发送睡前小故事其一>中说了如何爬取故事并且发送,并且已经达到目的了,那么我们如何在我们的windows上设置定时任务,每天按时的执行我们的代码呢?接下来听我 ...

  7. Python + Email每天定时自动给女朋友发送天气预报等各种关爱

    目录 一.前言 二.关爱邮件效果图 三.发送关爱邮件实现步骤 3.1.获取天气方法 3.2.获取词霸每日一句方法 3.3.发送邮件方法 3.4.调度方法实现 3.5.定时任务实现 四.完整源代码 一. ...

  8. 利用Python定时给女友微信发送今日天气情况,异地恋维护感情神器

    前言 在我们生活当中,有许多的×××姐和小哥哥都是出于异地恋的状态. 所以进群:839383765 可以获取各类Python入门学习资料+视频资料+在线直播教学! 我为你翻山越岭,却无心看风景.在她感 ...

  9. python自动刷新12306抢票

    #!/usr/bin/env python #-*- coding: utf-8 -*- """ 通过splinter刷12306火车票 可以自动填充账号密码,同时,在登 ...

最新文章

  1. mysql 查询正在执行的事务以及锁 常用的sql语句
  2. 【推荐实践】“全能选手”召回表征算法实践.pdf(附下载链接)
  3. Matlab中fread函数用法
  4. 如何在PC端看超星学习通直播
  5. 软件测试 PreDay 决策表
  6. Elasticsearch优化的一些建议
  7. java adobe pdf转word_adobe reader如何把PDF转换成word?adobe reader把PDF转换成word教程
  8. 优锘科技:ThingStudio森工厂掀起数字孪生龙卷风暴
  9. 神灵武装908服务器维护,神陵武装127服银河之心开服时间表_神陵武装新区开服预告_第一手游网手游开服表...
  10. NodeJS:Express 框架实战解析视频教程
  11. latex段落悬挂缩进_使用正则表达式在Java中悬挂缩进段落
  12. 洗拖一体机好用吗?实用的家用洗地机推荐
  13. 数据预处理-离群值检测与处理
  14. 【CSRF漏洞-01】跨站请求伪造漏洞靶场实战
  15. proxychains替代品polipo
  16. 最新红旗linux系统,红旗Linux10系统下载
  17. 【腾讯Bugly干货分享】Android 进程保活招式大全
  18. ubuntu20.04 日常办公
  19. TDOA的matlab仿真
  20. usb供电vbus的一些问题

热门文章

  1. 自学考试-“运筹学基础”
  2. C语言学习笔记(四) 运算符优先级
  3. 【Raft】学习九:成员变更ConfChangeV2
  4. layui制作二维码
  5. 二、常见的EDID问题
  6. Linux驱动开发-编写PCF8591(ADC)芯片驱动
  7. CTypedPtrArray的引用
  8. conda安装tensorflow和conda常用命令
  9. sketch怎么转换成html,手稿秒变html的Sketch 2 Code
  10. 因子分析法(Factor Analysis Method) 【转】