最近天氣變冷了,和父母聊天中得知,他們檢視每天的天氣預報不太方便,我記得小時候,每晚 19:30 左右,一家人都要守在電視機旁邊收聽第二天的天氣情況。
要獲取天氣情況,需要乙個查詢天氣的介面,網上找了一下,一般都是註冊後送一定呼叫次數的,我選擇了乙個,免費送 500 次查詢次數的。
我們看看介面的 api 文件。
其中城市名 cityname 和 key 是必填項。
蘇州&key=您申請的key
key 值在 juhe.cn 我的介面那一欄中可以看到。
我們也可以事先在 postman 工具中看看介面能否調通。
postman 介面工具沒用過的沒關係,他們網頁上也提供了除錯工具。
我們直接用 requests 庫請求介面就能獲得 json 格式的天氣資訊,json 資料中包含了當天和未來幾天的天氣資訊,這裡我只需要當天的,當天資料都在 result 下的 today 裡,提取出來用 return 返回。
先導入 wxpy 庫。
from wxpy import *
我們把剛才的請求介面返回的天氣資訊整合一下,然後用 wxpy 庫的 search 方法通過群名稱找到你需要傳送天氣訊息的這個群,用 send 方法傳送。
my_friend = bot.friends().search(u'pk哥')[0]
如果每次都需要我們手動執行,那就有點麻煩,我們要讓程式每天在固定時間定時傳送,這裡需要用到 timer 定時器。
timer 定時器格式:
timer(86400, get_weather)
第乙個引數表示相隔指定時間(單位:秒)後再次呼叫方法(第二個引數),注意,方法後不要帶括號。
86400 秒就是相隔 24 小時,也就是一天的時間。
t = timer(86400, get_weather)
t.start()
t.join()
如果資訊傳送失敗,我們把資訊發給自己,這裡我做了乙個異常處理。
except baseexception:
my_friend = bot.friends().search(u'brucepk')[
0] # 傳送不成功,則傳送訊息給自己,提醒訊息傳送失敗
my_friend.send(u'天氣訊息傳送失敗')
我們的程式需要持續執行,那是不是需要一直在電腦上執行啊,這樣有點不現實啊,我們把它部署到伺服器上就可以搞定了,現在伺服器也很便宜,做活動的時候一般 100 元以內就可以買一年。
2、傳送不到指定群先檢查下群名稱,把群名稱一些 emoji 表情符號去掉,這些特殊符號可能導致無法識別。
群名稱沒錯的話,看看自動傳送資訊的這個號有沒有把這個群新增到通訊錄。
這樣,乙個定時傳送訊息的小工具就完成了,你也可以在上面擴充套件,加上其他功能,這樣就更完善了。
天氣變冷了,給父母製作乙個天氣提醒小助手
最近天氣變冷了,和父母聊天中得知,他們檢視每天的天氣預報不太方便,我記得小時候,每晚 19 30 左右,一家人都要守在電視機旁邊收聽第二天的天氣情況。要獲取天氣情況,需要乙個查詢天氣的介面,網上找了一下,一般都是註冊後送一定呼叫次數的,我選擇了乙個,免費送 500 次查詢次數的。我們看看介面的 ap...
開源乙個天氣小程式 輕鬆天氣
雖然這個小玩具掙不了錢,也沒什麼特別之處,但是對我來說意義重大,想了許久還是決定開源,可以給有需要的人做個參考。這個小程式的基本特點 目前這個小程式也還在運營 其實就是偶爾更新下 介面長這樣 點個 star 好嘛 但是理論上無論啥版本都可以正常開啟執行。本小程式裡使用的天氣資料 於第三方提供的 ap...
爬天氣的乙個小爬蟲
使用bs,requests寫的 coding utf 8 import requests import re import argparse from bs4 import beautifulsoup parser argparse.argumentparser parser.add argumen...