Methode 1: Besorgen Sie HTML-Seiteninhalt, und dann den gewünschten Inhalt von regulären Ausdrücken zu erhalten
#!/usr/bin/env python
#coding=gbk
import requests
import urllib.request ,sys
import re
import time
def get_weather(provice,city):
url="http://qq.ip138.com/weather/"+provice+'/'+city+'.htm'
wetherhtml=urllib.request.urlopen(url)
result=wetherhtml.read().decode('gb2312')
f=open('weather.txt','wb')
f.write(result.encode('gb2312'))
f.close()
regex1='>(\d*-\d*-\d*.+?)<'
date=re.findall(regex1,result)
regex2='alt="(.+?)" />'
weather=re.findall(regex2,result)
regex3='<td>(\d{1,2}.+)</td>'
temperature=re.findall(regex3,result)
length=len(date)
t="未来5天天气预报:\n"
msg=''
for i in range(length):
msg= msg+date[i]+" 天气:"+weather[i]+", 温度:<font color=\"warning\">"+temperature[i]+"</font>\n";
return(t+msg)
#文字标记(markdown)机器人
def tony_bot_txt_markdown(boturl,provice,city,cityname):
weather="下雨"
temperature="20度"
headers={"Content-Type":"text/plain"}
city=get_weather(provice,city)
data={
"msgtype": "markdown",
"markdown": {
"content": cityname+city
}
}
res=requests.post(url=boturl,headers=headers,json=data)
#测试
tony_bot_txt_markdown('https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx','hunan','zhuzhou','株洲')
Methode 2: Wenn der Inhalt ist der Fall json Spezifikation Formate
Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" Low Temperature -3 ℃ "" Fengxiang ":" Nord "" type ":" clear "}, {" date " "donnerstag, 21.", "hoch": "Hochtemperatur 9 ℃", "Fengli": "<! [CDATA [<Stufe 3]]>", "niedrig": "niedrige Temperatur -1 ℃", "Fengxiang": "Nord", "type": "clear"}, { "Datum": "Freitag 22", "hoch": "Hochtemperatur 10 ℃", "Fengli" :! „<! [CDATA [<Stufe 3]] > "" niedrig ":" niedrige Temperatur 0 ℃ "" Fengxiang ":" Südostwind "" type ":" bewölkt "}]" ganmao ":" werden wir einen starken Kühlprozess, Kälte und Wind haben als stark, kalt leicht, achten Sie bitte besonders Kleidung warm kalt zu erhöhen. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „} Niedrige Temperatur -3 ℃ "" Fengxiang ":" Nord "" type ":" clear "}, {" Datum ":" Donnerstag 21 "" hoch ":" Hochtemperatur 9 ℃ "" Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" niedrige Temperatur -1 ℃ "" Fengxiang ":" Nord "" type ":" clear "}, {" Datum ":" 22 Day Friday "" hoch ":" Hochtemperatur 10 ℃ "" Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" niedrige Temperatur 0 ℃ "" Fengxiang ":" Südostwind " „type“: „bewölkt“}] „ganmao“: „es wird ein starker Kühlprozess, Kälte und starker Wind, Kälte leicht sein, bitte besondere Aufmerksamkeit schenken Kleidung warm kalt zu erhöhen. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „} Niedrige Temperatur -3 ℃ "" Fengxiang ":" Nord "" type ":" clear "}, {" Datum ":" Donnerstag, 21. "" hoch ":" Hochtemperatur 9 ℃ "" Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" niedrige Temperatur -1 ℃ "" Fengxiang ":" Nord "" type ":" clear "}, {" Datum ":" 22 Day Friday "" hoch ":" Hochtemperatur 10 ℃ "" Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" niedrige Temperatur 0 ℃ "" Fengxiang ":" Südostwind " „type“: „bewölkt“}] „ganmao“: „es wird ein starker Kühlprozess, Kälte und starker Wind, Kälte leicht sein, bitte besondere Aufmerksamkeit schenken Kleidung warm kalt zu erhöhen. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „} Temperatur 9 ℃ "" Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" Low Temperature -1 ℃ "" Fengxiang ":" Nord "" type ":" clear " }, { "Datum": "Freitag 22", "hoch": "Hochtemperatur 10 ℃", "Fengli": "<! [CDATA [<Stufe 3]]>", "niedrig": "niedrige Temperatur 0 ℃" „Fengxiang“: „Süd-Ost-Wind“, „type“: „bewölkt“}] „ganmao“: „es wird ein starker Kühlprozess, Kälte und starker Wind, Kälte leicht sein, achten Sie bitte besonders in der Kleidung zu erhöhen warm kalt. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „} Temperatur 9 ℃ "" Fengli ":" <! [CDATA [<Stufe 3]]> "" niedrig ":" Low Temperature -1 ℃ "" Fengxiang ":" Nord "" type ":" clear " }, { "Datum": "Freitag 22", "hoch": "Hochtemperatur 10 ℃", "Fengli": "<! [CDATA [<Stufe 3]]>", "niedrig": "niedrige Temperatur 0 ℃" „Fengxiang“: „Süd-Ost-Wind“, „type“: „bewölkt“}] „ganmao“: „es wird ein starker Kühlprozess, Kälte und starker Wind, Kälte leicht sein, achten Sie bitte besonders in der Kleidung zu erhöhen warm kalt. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „} „“ Niedrig ‚:‘ Niedrige Temperatur 0 ℃ „“ Fengxiang ‚:‘ Südostwind „“ type ‚:‘ bewölkt ‚}]‘ ganmao ‚:‘ wird eine starke Kühlprozess, kaltes Wetter hat, und starke Winde , Kälte leicht, achten Sie bitte besonders Kleidung warm kalt zu erhöhen. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „} „“ Niedrig ‚:‘ Niedrige Temperatur 0 ℃ „“ Fengxiang ‚:‘ Südostwind „“ type ‚:‘ bewölkt ‚}]‘ ganmao ‚:‘ wird eine starke Kühlprozess, kaltes Wetter hat, und starke Winde , Kälte leicht, achten Sie bitte besonders Kleidung warm kalt zu erhöhen. "" Wendu ":" - 1 "}," Status ": 1000," ab ":" OK „}
#coding=gbk
import urllib.request
import gzip
import json
def get_weather():
city_name = input('请输入城市名称:')
url = 'http://wthrcdn.etouch.cn/weather_mini?city='+urllib.parse.quote(city_name)
w_data = urllib.request.urlopen(url).read()
w_data = gzip.decompress(w_data).decode('utf-8')
w_dict = json.loads(w_data)
return w_dict
wdata=get_weather();
if(wdata.get('desc')=='OK'):
cityName=wdata.get('data').get('city')
wendu=wdata.get('data').get('wendu')+"℃"
tips=wdata.get('data').get('ganmao')
forecast=wdata.get('data').get('forecast')
today_date=forecast[0].get('date')
today_high=forecast[0].get('high')
today_fengli=forecast[0].get('fengli')
print(today_fengli.replace('<![CDATA[','').replace(']]>',''))#<![CDATA[<3级]]>转成<3级
isDisplay=input('是否显示未来4天的天气情况:')
if(isDisplay=='是' or isDisplay=='Y' or isDisplay=='y'):
for i in range(1,5):
print(forecast[i].get('date')+','+forecast[i].get('high')+','+forecast[i].get('low'))
else:
print('输入的城市名称有错误!')
Methode 2 Lite
#coding=gbk
import json
import requests
whtml = requests.get('http://wthrcdn.etouch.cn/weather_mini?city=株洲')
wdata = json.loads(whtml.text)
print(wdata['data'])
print("\n")
for i in range(len(wdata['data']['forecast'])):
print(wdata['data']['forecast'][i]['type'])
-i https://pypi.douban.com/simple pyinstaller die Installation PIP
pyinstaller -F -w -i xxx.ico yy.py
erzeugte EXE - Datei unter dem Verzeichnis dist