鼓捣了一阵子的微信机器人今天终于运行成功了,可以选择在每天的5点20分为你的女朋友发送当日的天气,每日一句还有日历,如果你有多个女朋友的话,还可以创建一个列表,之后循环遍历列表为你的多个女朋友发送你的关怀,让你更好的做好时间管理
设置好你需要关怀的人的微信名,微信扫码登录,剩下的交给程序就可以了
-
需要导入的库有requsets请求库 微信wxpy库 time时间库
-
import json,datetime
-
import requests,itchat,sxtwl
-
from itchat.content import *
-
from wxpy import TEXT
-
import time
注意:光理论是不够的,在此送大家一套2020最新Python全栈实战视频教程,点击此处 免费获取一起进步哦!
1.创建一个日历函数
-
def getYMD():
#获得对应的农历
-
ymc = [
u"十一",
u"十二",
u"正",
u"二",
u"三",
u"四",
u"五",
u"六",
u"七",
u"八",
u"九",
u"十"]
-
rmc = [
u"初一",
u"初二",
u"初三",
u"初四",
u"初五",
u"初六",
u"初七",
u"初八",
u"初九",
u"初十",
-
u"十一",
u"十二",
u"十三",
u"十四",
u"十五",
u"十六",
u"十七",
u"十八",
u"十九",
-
u"二十",
u"廿一",
u"廿二",
u"廿三",
u"廿四",
u"廿五",
u"廿六",
u"廿七",
u"廿八",
u"廿九",
u"三十",
u"卅一"]
-
Gan = [
"甲",
"乙",
"丙",
"丁",
"戊",
"己",
"庚",
"辛",
"壬",
"癸"]
-
Zhi = [
"子",
"丑",
"寅",
"卯",
"辰",
"巳",
"午",
"未",
"申",
"酉",
"戌",
"亥"]
-
ShX = [
"鼠",
"牛",
"虎",
"兔",
"龙",
"蛇",
"马",
"羊",
"猴",
"鸡",
"狗",
"猪"]
-
numCn = [
"天",
"一",
"二",
"三",
"四",
"五",
"六",
"七",
"八",
"九",
"十"]
-
lunar = sxtwl.Lunar()
-
year = datetime.datetime.now().year
-
month = datetime.datetime.now().month
-
rday = datetime.datetime.now().day
-
day = lunar.getDayBySolar(year, month, rday)
-
d = str(day.y) +
"年" + str(day.m) +
"月" + str(day.d) +
"日"
-
if day.Lleap:
-
a =
"润" + ymc[day.Lmc] +
"月" + rmc[day.Ldi] +
"日"
-
else:
-
a = ymc[day.Lmc] +
"月" + rmc[day.Ldi] +
"日"
-
b =
"星期" + numCn[day.week]
-
c = Gan[day.Lyear2.tg] + Zhi[day.Lyear2.dz] +
"年" + Gan[day.Lmonth2.tg] + Zhi[day.Lmonth2.dz] +
"月" + Gan[
-
day.Lday2.tg] + Zhi[day.Lday2.dz] +
"日"
-
txt =
'今天日期:'+d +
', ' + b +
'\n'+
'中华农历: ' + a +
', ' + c
-
return txt
# 返回当前的日期信息
2.爬虫爬取爱词霸的每日一句
-
def get_iciba_everyday_chicken_soup():
-
url =
'http://open.iciba.com/dsapi/'
# 爱词霸的api地址
-
r = requests.get(url)
-
all = json.loads(r.text)
-
Englis = all[
'content']
-
Chinese = all[
'note']
-
everyday_soup = Chinese+
'\n'+Englis+
'\n'
-
return everyday_soup
# 返回爱词霸的每日一句
3.天气接口函数
-
def get_sentence(api):
-
santence = requests.get(api)
-
-
return santence.json()
4.微信图灵机器人
-
def get_response(question):
-
apikey =
'17216627bdd6495480ec7608fa1f4aeb'
-
url =
'http://openapi.tuling123.com/openapi/api/v2' + apikey +
'&info=' + question
-
res = requests.get(url).json()
-
return res[
'text']
-
-
# 微信机器人
-
@itchat.msg_register(TEXT, isFriendChat=True)
-
def auto_reply(msg):
-
print(
"消息是:%s" % msg[
'Content'])
-
itchat.send_msg(get_response(msg[
'Content']), toUserName=msg[
'FromUserName'])
-
print(
'auto_reply:%s' % get_response(msg[
'Content']))
5主函数main()
-
if __name__ ==
'__main__':
-
names = input(
"请输入你要发送人的微信名:")
-
hours = int(input(
"请输入几点发送消息:"))
-
minutes = int(input(
"请输入几分发送消息:"))
-
number = input(
"输入所在城市的编号:")
-
g = getYMD()
-
g1 = get_iciba_everyday_chicken_soup()
-
# 天气接口的网站 number为城市编号
-
name =
'http://t.weather.sojson.com/api/weather/city/'+ number
-
# 向get_sentence 传入参数
-
g2 = get_sentence(name)
-
times = g2[
'cityInfo']
-
for key, name
in times.items():
-
city = times[
'city']
-
parent = times[
'parent']
-
# 字典嵌套字典
-
time1 = g2[
'data']
-
for key, name
in time1.items():
-
shidu = time1[
'shidu']
-
pm25 = time1[
'pm25']
-
quality = time1[
'quality']
-
ganmao = time1[
'ganmao']
-
time1 = g2[
'data']
-
time2 = time1.get(
'forecast',
'不存在该键')
-
time2 = time2[
0]
-
itchat.auto_login(hotReload=
True)
-
for key, name
in time2.items():
-
high = time2[
'high']
-
low = time2[
'low']
-
fx = time2[
'fx']
-
fl = time2[
'fl']
-
type = time2[
'type']
-
notice = time2[
'type']
-
# 调用微信机器人
-
users = itchat.search_friends(names)
# 找到用户
-
userName = users[
0][
'UserName']
-
-
while
True:
-
-
t = datetime.datetime.now()
-
t1=t.strftime(
'%Y-%m-%d %H:%M:%S')
-
hour = t.hour
-
minute = t.minute
-
second = t.second
-
print(
'%d:%d:%d' % (hour,minute,second))
-
if hour == hours
and minute == minutes:
-
itchat.send_msg(
"%s" % g, toUserName=userName)
-
itchat.send_msg(
'%s' % g1, toUserName=userName)
-
itchat.send_msg(
'所在省份:%s\n'
-
'所在城市:%s\n'
-
'今日最高温度:%s\n '
-
'今日最低温度:%s\n'
-
'风向:%s\n '
-
'风力:%s\n'
-
'湿度:%s \n'
-
'PM2.5: %s\n'
-
'空气质量:%s \n'
-
'易感指数:%s\n'
-
'天气:%s - %s '%(parent,city,high,low,fx,fl,shidu,pm25,
-
quality,ganmao,type,notice), toUserName=userName)
-
break
-
else:
-
time.sleep(
5)
# 延迟5秒
-
continue
-
itchat.run()
-
time.sleep(
86400)
PS:
1.输入城市编码时,通过下列网址查找所希望的城市编码
https://github.com/baichengzhou/weather.api/blob/master/src/main/resources/citycode-2019-08-23.json
2.在输入小时数的时候为24小时格式,输入早上8点,要输入08,不能输入8.
3.输入发送的微信时,必须是接收人的微信全名,备注不可以接收,会查询不到通讯录
愿你在我看不到的地方安然无恙,
愿你的冬天永远不缺暖阳。
愿你的明天不再经历雨打风霜,
愿你的未来永远热泪盈眶 --写给前任
转载:https://blog.csdn.net/worrybout/article/details/106657957
查看评论