卖坚果的怪叔叔 卖坚果的怪叔叔
  • 首页
  • 技术
  • 生活
  • 记录
  • 朋友
  • 常用代码
  • 工具箱
  • 关于
首页 › 技术 › 超简单!只需简单几步即可为TA定制天气小助理!!

超简单!只需简单几步即可为TA定制天气小助理!!

坚果大叔
2019-06-23 17:22:37技术阅读 636

文章目录[隐藏]

  • 前提
  • 效果如图
  • 准备
  • 主要代码
    • 1. 安装 python 3.7 版本
    • 2. 为项目安装相关模块
      • wxpy
    • 3. 初始化机器人
    • 4. 设置模拟请求接口相关
    • 5. 设置相关请求,以及需要的信息字段拼接

超简单!只需简单几步即可为TA定制天气小助理!!-卖坚果的怪叔叔

前提

虽然我们每天都会查看天气,但是如果你能够用限制微信每天早上七点定时为TA推送天气预报,生活指数。直接为TA提供过滤好的天气信息,让TA一目了然。而且操作简单上手,任何人都可以零基础搭建,为你的TA带来一丝小惊喜。

效果如图

超简单!只需简单几步即可为TA定制天气小助理!!-卖坚果的怪叔叔

准备

  1. 运行环境 win10 Linux
  2. python 3.4 版本
  3. 一个微信小号
  4. 和风天气api
  5. 一个编辑器,就是文本编辑器也可以

主要代码

1. 安装 python 3.7 版本

小伙伴如果是 window 电脑可以直接在 Python官网 选择 download 直接下载

超简单!只需简单几步即可为TA定制天气小助理!!-卖坚果的怪叔叔

直接点击下载好的exe文件进行安装,记得将环境变量配置选项勾选上。如下图:

超简单!只需简单几步即可为TA定制天气小助理!!-卖坚果的怪叔叔

安装完成之后,我们可以新建文件夹,从git 上将代码clone 下来。我们直接在文件夹中摁住 shift + 鼠标右键 唤出 powerShell 查看 Python 版本。

如果大家还有不明白的可以参考 Python安装教程

2. 为项目安装相关模块

可通过 pip install 直接安装相关模块,如运行时还有因模块报错,也可以直接pip install 模块名直接安装即可。本项目以及后续相关都依赖于以下模块。

#coding=utf8
import requests
from urllib.request import urlopen
from bs4 import BeautifulSoup
from urllib.parse import urlencode
from threading import Timer
import re
from wxpy import *
import  schedule
import  time
import http
import  json 
import datetime
import random

重要: 其中 wxpy 模块是本项目以及后续项目中很重要的模块,就是因为这个开源项目,我们才能使其与微信产生交互。

wxpy

控制路由器、智能家居等具有开放接口的玩意儿
运行脚本时自动把日志发送到你的微信
加群主为好友,自动拉进群中
跨号或跨群转发消息
自动陪人聊天
逗人玩
...

项目介绍以及安装方法,大家可以去主页想看wxpy

3. 初始化机器人

参考 登录文档

bot = Bot(cache_path=True,console_qr = 1)
// 初始化机器人,扫码登录 console_qr 是用于登录的二维码展示默认为1
bot.enable_puid('wxpy_puid.pkl')
// 机器人启用 puid 属性,并指定 puid 所需的映射数据保存/载入路径

4. 设置模拟请求接口相关

def api(url):
    header = {
        'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
        'Accept-Encoding': 'gzip, deflate',
        'Accept-Language': 'zh-CN,zh;q=0.8',
        'Connection': 'keep-alive',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.235'
    }
    timeout = random.choice(range(80, 180))
    data = requests.get(url, headers=header, timeout=timeout)

    return data.json()

header 中用来设置模拟请求接口的浏览器相关参数防止api 以为我们是爬虫抓取。并设定随机请求时间。

5. 设置相关请求,以及需要的信息字段拼接

def sendweather(city, xx):
    url = 'https://free-api.heweather.com/s6/weather/forecast?location='+city+'&key=和风key'
    PMurl = 'https://free-api.heweather.com/s6/air/now?parameters&location='+city+'&key=和风key'
    lifeurl = 'https://free-api.heweather.com/s6/weather/lifestyle?location='+city+'&key=和风key'

    temp = api(url)
    temp = temp['HeWeather6'][0]
    update = temp['update']
    now = temp['daily_forecast'][0]
    nowTime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')

    pm = api(PMurl)
    pm = pm['HeWeather6'][0]
    airnow = pm['air_now_city']

    life = api(lifeurl)

    life = life['HeWeather6'][0]
    life = life['lifestyle']
    result =  xx + city +' ---' + '\n'+ '\n'\
    + '          今天天气:'+ now['cond_txt_d'] + ' 转 ' + now['cond_txt_n'] + '\n'\
    + '          今天温度:'+ now['tmp_min'] + '°C ~ ' + now['tmp_max'] + '°C' + '\n'\
    + '          风向:'+ now['wind_dir'] + ' ' + now['wind_sc'] + '级 '+ now['wind_spd'] + '公里/小时'+ '\n'\
    + '          相对湿度:'+ now['hum'] + '%' + '\n'\
    + '          降水量:'+ now['pcpn'] + 'ml' + ',降水概率:'+ now['pop'] + '%' + '\n'\
    + '          能见度:'+ now['vis'] + '公里' + '\n'\
    + '------------------------------------------' + '\n'\
    + '今天空气质量:'+'\n'\
    + '          空气质量指数:'+ airnow['aqi']+'\n'\
    + '          主要污染物:'+ airnow['main']+'\n'\
    + '          空气质量:'+ airnow['qlty']+'\n'\
    + '          二氧化氮指数:'+ airnow['no2']+'\n'\
    + '          二氧化硫指数:'+ airnow['so2']+'\n'\
    + '          一氧化碳指数:'+ airnow['co']+'\n'\
    + '          pm10指数:'+ airnow['pm10']+'\n'\
    + '          pm25指数:'+ airnow['pm25']+'\n'\
    + '          臭氧指数:'+ airnow['o3'] +'\n'\
    + '------------------------------------------' + '\n'\
    + '1、'+ life[0]['txt']+'\n\n'\
    + '2、'+ life[1]['txt']+'\n\n'\
    + '3、'+ life[2]['txt']+'\n\n'\
    + '


微信扫描下方的二维码阅读本文

微信 微信机器人
赞赏 赞(0)
本文系作者 @坚果大叔 原创发布在 卖坚果的怪叔叔。未经许可,禁止转载。
重学JavaScript之基本概念(中) => 操作符
上一篇
重学JavaScript之基本概念(下)=>运算符
下一篇
近期文章
  • 3月已到月底,今年已过四分之一!
  • 使用encodeURI出现URI malformed报错?
  • 周末,公园,人多!!!
  • Element-Plus的一点疑难问题~
  • 一些AList站点以及有趣的网址
使用encodeURI出现URI malformed报错?
2023-03-14 16:38:10
460 0 0
Element-Plus的一点疑难问题~
2023-02-28 17:21:19
489 3 0
微信小程序批量提交后台审核
2023-01-29 17:56:58
967 0 2
Home
2023-01-19 13:49:05
322 0 1
  • 0
博主

一枚佛系前端开发,会一丢丢摄影,喜欢折腾,爱好美食。分享点前端技巧、笔记以及各种有趣的APP和资源教程♥♥

友链
Lieme
公众号
坚果大叔 执行上下文 卖坚果的怪叔叔
Copyright © 2017-2023 卖坚果的怪叔叔. Designed by nicetheme.

苏ICP备18048410号-2
  • 首页
  • 技术
  • 生活
  • 记录
  • 朋友
  • 常用代码
  • 工具箱
  • 关于
# WordPress # # CSS #
坚果大叔
233
文章
65
评论
174
喜欢