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

2019-06-23 16:41:22 +08:00
 pianjiao

前提

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

效果如图

准备

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

主要代码

1. 安装 python 3.7 版本

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

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

安装完成之后,我们可以新建文件夹,从 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'\
    + '😄😊😉😍😘😚😜😝😳😁'+'\n\n'\
        
    result =  result + '发送时间:' +  nowTime + '\n'

    return result

小伙伴可以在和风官网注册账户,其中有免费的天气、生活指数 api 可以使用。免费的已经可以满足我们的需求。

git

本项目的代码以上传我的 github,如有需要大家可以 clone 下载

wepython

注意事项

  1. 在 window 下 可以用 powerShell 来运行 python 程序。
  2. 微信号要用 2017 年之前注册的微信号,新注册的微信号不能在 web 网页登录无法使用。
  3. 大家如果没有小号,需要购买的请注意对方诚信度。不要为了这个上当受骗。

下期预告

用 python + wxpy 为 TA 定制贴心喝水小助理。

关于我

小夭同学,页面切图仔。

想体验机器人的小伙伴可以加下面二维码,验证信息 ** [ py ] ** 自动通过拉你入群体验机器人其他功能。

欢迎小伙伴关注我的微信 ** [小夭同学] ** 一起学习前端相关知识。

2429 次点击
所在节点    分享创造
12 条回复
pianjiao
2019-06-23 16:43:00 +08:00
具体代码请 看 git 地址
npe
2019-06-23 16:48:31 +08:00
2015 年之后注册的微信,都无法使用网页版,想知道 api 是哪来的?
Abbeyok
2019-06-23 16:54:07 +08:00
男:这好酷啊,我要为女神定制
女:什么玩意,拉黑
pianjiao
2019-06-23 18:03:38 +08:00
@Abbeyok 哈哈,真相
ShuoHui
2019-06-23 18:52:40 +08:00
@Abbeyok 太真实了
Ekid
2019-06-24 09:53:16 +08:00
去年我就给女神搞过这个。。屁用也没有
pianjiao
2019-06-24 11:16:05 +08:00
@Ekid 😂😂😂
shuizhengqi
2019-06-24 14:27:32 +08:00
点进来之前,就知道这种只需几步就能实现机器人的,基本都是 python+wxpy+图灵机器人
copycoder
2019-06-24 16:36:13 +08:00
楼主,我很喜欢你的头像,可以分享下同类型图片的地址吗,谢谢~
pianjiao
2019-06-25 11:52:48 +08:00
@copycoder 晚上给你找找,或者直接搜百度 qq 表情大图
siknet
2019-06-25 12:10:45 +08:00
作为过来人,我要说一句实话:搞这么多名堂,不如送根 DIOR 999 更实用
pianjiao
2019-06-25 20:36:05 +08:00
@siknet 正解

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/576654

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX