方法1:获取页面HTML内容,再通过正则表达式来获取需要的内容

#!/usr/bin/env python
#coding=gbk
import requests
import urllib.request ,sys
import re
import timedef 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','株洲')

方法2:如果内容是json等规范格式的情况

{"data":{"yesterday":{"date":"17日星期日","high":"高温 11℃","fx":"西北风","low":"低温 -4℃","fl":"<![CDATA[5-6级]]>","type":"多云"},"city":"北京","forecast":[{"date":"18日星期一","high":"高温 4℃","fengli":"<![CDATA[3-4级]]>","low":"低温 -5℃","fengxiang":"西北风","type":"晴"},{"date":"19日星期二","high":"高温 6℃","fengli":"<![CDATA[<3级]]>","low":"低温 -4℃","fengxiang":"西南风","type":"晴"},{"date":"20日星期三","high":"高温 7℃","fengli":"<![CDATA[<3级]]>","low":"低温 -3℃","fengxiang":"北风","type":"晴"},{"date":"21日星期四","high":"高温 9℃","fengli":"<![CDATA[<3级]]>","low":"低温 -1℃","fengxiang":"北风","type":"晴"},{"date":"22日星期五","high":"高温 10℃","fengli":"<![CDATA[<3级]]>","low":"低温 0℃","fengxiang":"东南风","type":"多云"}],"ganmao":"将有一次强降温过程,天气寒冷,且风力较强,极易发生感冒,请特别注意增加衣服保暖防寒。","wendu":"-1"},"status":1000,"desc":"OK"}

#coding=gbk
import urllib.request
import gzip
import jsondef 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_dictwdata=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('输入的城市名称有错误!')

方法2的简化版

#coding=gbk
import json
import requestswhtml = 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'])

pip install -i https://pypi.douban.com/simple pyinstaller
pyinstaller -F -w -i xxx.ico yy.py
在dist目录下面生成exe文件

Python群机器人发送城市天气情况相关推荐

  1. ajax获取当前城市天气情况

    ajax获取当前城市天气情况 最进项目用到了天气的功能,经过不懈的努力终于有了一点收获,特此发上来与大家共享 js脚本 <script type="text/javascript&qu ...

  2. Python案例:查询城市天气并绘制最高气温与最低气温折线图

    Python案例:查询城市天气并绘制最高气温与最低气温折线图 一.解决思路 比如要查询"泸州"的天气. 1.首先获取泸州的城市代码 http://toy1.weather.com. ...

  3. Python使用飞书群机器人发送消息

    原创文|Space9 机器人简单介绍 飞书群中的自定义机器人是通过webhook的形式将你要发送的消息即时发送到群聊中 在群聊中添加机器人 进入群聊,打开群设置,找到群机器人,并点击添加机器人.选择C ...

  4. Python爬虫系列:使用selenium+Edge查询指定城市天气情况

    首先发个福利,有个网店正在推出特价优惠<Python程序设计开发宝典>,原价69.0元,特价46.92元,详情查看:https://detail.tmall.com/item.htm?id ...

  5. python 在企业微信通过群机器人发送消息

    1.在企业微信新建一个群,最开始最好只加入自己,方便测试,以免影响他人 在企业微信群昵称处右键鼠标,选择添加群机器人-添加群机器人-新创建一个机器人,如下图所示: 2.添加完群机器人之后,在群的联系人 ...

  6. Python爬取高德地图各城市天气情况

    先上效果图 再上完整代码 import timeimport requests from prettytable import PrettyTable #用来打印表格的库 ''' 查询当前地点天气的u ...

  7. 钉钉群机器人发送图片不显示问题

    图片格式: 必须是网络路径 必须是jpg格式

  8. C# 钉钉群机器人发送消息代码实现

    本文属于个人原创作品.个人总结,谢绝转载.抄袭.如果您有疑问或者希望沟通交流,可以联系QQ:865562060. 一.开始接入 1.开始接入钉钉之前,首先需要了解企业接入钉钉的概述:https://o ...

  9. 企业微信群机器人每日天气提醒(shell + crontab)

    介绍: 使用 shell 获取当地天气,并调用企业微信机器人发送当天天气情况. 一.新建创建机器人,获取 webhook 地址 准备一个企业微信群,并右键选择「添加群机器人」 选择创建群机器人 填写名 ...

最新文章

  1. redis重启会清除数据吗_从零开始手写 redis(三)内存数据重启后如何不丢失?...
  2. linux编写arm执行文件夹,嵌入式ARM-Linux平台上的编译、配置和运行使用
  3. 重要性采样原理及实现
  4. access update语句执行_SQL Server与Access数据库sql语法十大差异
  5. 微软取消Windows10强制更新
  6. servlet篇 之servlet实现
  7. Linux GCC make文件的写法4--清晰版
  8. 基于MATLAB的数字信号处理系统的GUI界面实现
  9. Python PDF转image方法小结
  10. C语言pow 函数的总结:
  11. 什么是DNS泄漏?我为什么要关心?
  12. ZigBee无线通信--BasicRF无线点对点通信
  13. 移动硬盘位置不可用无法访问函数不正确修复方法?
  14. TMR磁传感器技术注释 | 自旋电子学(磁电子学)
  15. 【软件安装】vmware虚拟机安装完整教程(15.5版本)
  16. 淘宝直播火爆的背后,阿里做了什么?
  17. 双曲三角函数图像及计算
  18. 网易云歌单歌曲实时拉取
  19. fedora安装fcitx
  20. 2021.3.2版本idea配置maven出现org.codehaus.plexus.component.repository.exception.ComponentLookupException

热门文章

  1. 将jar包制作成docker镜像
  2. bzoj5108 [CodePlus2017]可做题 位运算dp+离散
  3. 基于summernote的富文本编辑器,粘贴时去除word、html格式
  4. CSS3实现8种Loading效果【第二波】
  5. [转帖] 启动多个Tomcat 需要修改的端口
  6. C++内存管理变革(3):另类内存管理
  7. linux下安装 Sublime Text 3
  8. 关于HTML5中meta name=“viewport“ 的用法---web前端工作笔记014
  9. 分表扩展全局序列实际操作_高可用_单表存储千万级_海量存储_分表扩展---MyCat分布式数据库集群架构工作笔记0026
  10. MyCat分布式数据库集群架构工作笔记0018---高可用_单表存储千万级_海量存储_水平分表划分原则