百度天气api

此文章的天气预报功能是基于百度天气api,百度api可以获取到当前的温度,天气,风度。还可以获取到未来三天的天气,温度。若要申请该api,请前往前往百度天气api申请。

步骤

登录你的账号。

选择创建应用

设置好ip白名单,功能(必选国内天气查询),名字。

获取生成的ak(类似于api)

learnku发消息接口

cookie所需性:yes

参数名

介绍

例子_token

请求暗号

recipient_id

好友id

60808(一大加贝)

message

发送内容

你好

cookie和token

cookie

cookie是一个保存在本地的小文本文件,用于存储用户在各种网站上登录的数据(账号,密码)。这样,下次进入这个网站的时候,你就不用再次登录。

获取方式:F12打开开发者工具,选择到network,F5刷新网站。选择第一个网站文件。往下翻数据即可看到cookie,复制即可。(google chrome)

token

token类似于暗号,向一个请求数据的时候就需要用到。大多数网站都用token作为反爬机制。

获取方式:打开网络源代码,此位置的数据就是token。

代码

对api进行请求

首先,我们要请求对百度天气api进行请求。若需要查看请求接口,请求方式,请求参数,请前往百度天气api服务文档。

import requests

city_id = 440300#深圳的地区编码,查询地区编码请前往https://blog.csdn.net/Madman_long/article/details/83374400

ak = 'HELaVmuS91N8z1IjE9i3m2uAVFWGMVBU'#你的ak

url = 'http://api.map.baidu.com/weather/v1/?district_id=%d&data_type=all&ak=%s'%(city_id,ak)

result = requests.get(url).json()

print(result)

保存为weather.py,终端输入python weather.py,返回结果:

{'status': 0, 'result': {'location': {'country': '中国', 'province': '广东省', 'city': '深圳市', 'name': '深圳', 'id': '440300'}, 'now': {'text': '阴', 'temp': 23, 'feels_like': 23, 'rh': 81, 'wind_class': '2级', 'wind_dir': '东风', 'uptime': '20200422110000'}, 'forecasts': [{'text_day': '阵雨', 'text_night': '阵雨', 'high': 23, 'low': 18, 'wc_day': '<3级', 'wd_day': '静风', 'wc_night': '<3级', 'wd_night': '静风', 'date': '2020-04-22', 'week': '星期三'}, {'text_day': '中雨', 'text_night': '中雨', 'high': 22, 'low': 18, 'wc_day': '3~4级', 'wd_day': '东风', 'wc_night': '3~4级', 'wd_night': '东风', 'date': '2020-04-23', 'week': '星期四'}, {'text_day': '中雨', 'text_night': '中雨', 'high': 19, 'low': 17, 'wc_day': '3~4级', 'wd_day': '北风', 'wc_night': '3~4级', 'wd_night': '北风', 'date': '2020-04-24', 'week': '星期五'}, {'text_day': '阵雨', 'text_night': '阵雨', 'high': 22, 'low': 18, 'wc_day': '<3级', 'wd_day': '静风', 'wc_night': '<3级', 'wd_night': '静风', 'date': '2020-04-25', 'week': '星期六'}, {'text_day': '阵雨', 'text_night': '多云', 'high': 22, 'low': 19, 'wc_day': '<3级', 'wd_day': '静风', 'wc_night': '<3级', 'wd_night': '静风', 'date': '2020-04-26', 'week': '星期日'}]}, 'message': 'success'}

我们要获取到当天的天气预报,位置就在于result[‘result’][‘forecasts’][0]的字典。在这个字典里面,有今天的是白天天气,晚上天气,最高温度和最低温度等数据。完整代码:

import requests

city_id = 440300 #深圳的地区编码,查询地区编码请前往https://blog.csdn.net/Madman_long/article/details/83374400

ak = 'HELaVmuS91N8z1IjE9i3m2uAVFWGMVBU' #你的ak

url = 'http://api.map.baidu.com/weather/v1/?district_id=%d&data_type=all&ak=%s'%(city_id,ak)

result = requests.get(url).json()['result']['forecasts'][0]

date = result['date'] #当天日期

text_day = result['text_day'] #白天天气

text_night = result['text_night'] #晚上天气

high_temp = result['high'] #当天最高温度℃

low_temp = result['low'] #当天最低温度℃

wc_day = result['wc_day'] #风力

wd_day = result['wd_day'] #风

weather = '''%s

-----深圳天气-----

白天天气:%s

晚上天气:%s

当天最高温度:%d

当天最低温度:%d

风力:%s

风:%s'''%(date,text_day,text_night,high_temp,low_temp,wc_day,wd_day)

调用learnku发消息接口

我们弄好了百度天气api这一块,接下来就要弄发消息。首先,我们创建一个新的python文件,叫send_message.py。首先,导入我们的requests库。

import requests

然后再设置好请求url,data,token以及我们的cookie

response = requests.get('https://learnku.com/').text

html = etree.HTML(response.text)

token = '你的token'

url = 'https://learnku.com/messages'

data = {'_token':token,

'recipient_id':'好友id',

'message':'你好!'}

headers = {'cookie':'你的cookie'}

最后,就可以进行一个请求了!

send = requests.post(url,data=data,headers=headers)

打印一下send,如果状态码是200,就说明你成功了!

效果图:

完成了调用百度天气api与发消息之后,我们就可以合并代码,进行一个小修改了。

import requests

city_id = 440300 #深圳的地区编码,查询地区编码请前往https://blog.csdn.net/Madman_long/article/details/83374400

ak = 'HELaVmuS91N8z1IjE9i3m2uAVFWGMVBU' #你的ak

weather_url = 'http://api.map.baidu.com/weather/v1/?district_id=%d&data_type=all&ak=%s'%(city_id,ak)

result = requests.get(weather_url).json()['result']['forecasts'][0]

date = result['date'] #当天日期

text_day = result['text_day'] #白天天气

text_night = result['text_night'] #晚上天气

high_temp = result['high'] #当天最高温度℃

low_temp = result['low'] #当天最低温度℃

wc_day = result['wc_day'] #风力

wd_day = result['wd_day'] #风

weather = '''%s

--------深圳天气--------

白天天气:%s

晚上天气:%s

当天最高温度:%d

当天最低温度:%d

风力:%s

风:%s'''%(date,text_day,text_night,high_temp,low_temp,wc_day,wd_day)

response = requests.get('https://learnku.com/').text

html = etree.HTML(response.text)

token = html.xpath('//meta[@name="csrf-token"]/@content')

send_url = 'https://learnku.com/messages'

data = {'_token':token,

'recipient_id':'好友id',

'message':weather + '\nTNT机器人报告完毕,祝您有一个美好的一天:kissing_heart:'}

headers = {'cookie':'你的cookie'}

send = requests.post(send_url,data=data,headers=headers)

保存为send_weather.py,终端运行python send_weather.py。

效果图:

本作品采用《CC 协议》,转载必须注明作者和本文链接

coder Derek

python qq机器人预报天气_python 爬虫 实现给 learnku 好友发当天的天气预报相关推荐

  1. python qq空间 上传_Python爬虫获取QQ空间信息(上)

    开发工具 Python版本:3.6.4 相关模块: requests模块: selenium模块: lxml模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip ...

  2. python qq空间 上传_Python 爬虫监控女神的QQ空间新的说说,实现秒赞,并发送说说内容到你的邮箱...

    这个文章主要是在前一篇文章上新增了说说秒赞的功能 前一篇文章可以了解一下 那么,这次主要功能就是 监控女神的 QQ空间,一旦女神发布新的说说,马上点赞,你的邮箱马上就会收到说说内容,是不是想了解一下 ...

  3. 记一次python,QQ机器人开发(入门)

    由于网页版qq已经没了,所以开发网页版qq机器人不可能了 但这样丝毫不影响我们开发QQ机器人 可以用酷q来进行开发 酷q现在不能下载了,大家自行百度,不提供链接 这里用的模块是 nonebot 具体安 ...

  4. python爬取收费素材_Python爬虫练习:爬取素材网站数据

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 在工作中的电子文案.ppt,生活中的新闻.广告,都离不开大量的素材,而素材 ...

  5. python爬取历史天气_Python 爬取历史天气数据

    Python 爬取历史天气数据 作者:梅昊铭 1. 导读 之前Mo给大家分享过杭州历年天气情况的数据集,相信有不少小伙伴好奇这些数据是怎么获取.今天Mo就来教大家如何使用Python来进行历史天气数据 ...

  6. python做机器人行走动画_python实现机器人行走效果

    本文实例为大家分享了python实现机器人行走效果的具体代码,供大家参考,具体内容如下 #! /usr/bin/env python3 # -*- coding: utf-8 -*- # fileNa ...

  7. python通过ip池爬_python 爬虫 代理ip池(适合初学者)

    初次学习python爬虫的朋友在频繁访问被爬取页面网站时都会被拦截,也就是限制ip.这里教教大家建立代理ip池. #!/usr/bin/env python3# -*- coding: utf-8 - ...

  8. python手机壁纸超清_Python爬虫-王者荣耀高清壁纸下载

    绪论 网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.python是一种跨平台的计算机程序设计语言.是一种 ...

  9. python信息检索和评价系统_Python爬虫实现的微信公众号文章下载器

    所以我就想有什么方法能否将这些公众号文章下载下来.这样的话,看起来也方便.但是网上的方法要么太复杂(对于我这个爬虫入门新手来说),要么付费. 但我的需求其实却很简单--"方便的查找 / 检索 ...

  10. python爬取学校新闻_python爬虫爬取新闻的简单实现

    我们通常是使用爬虫爬取网站信息,其实网络爬虫是一种应用于搜索引擎的程序.使用python爬虫可以将一个网站的所有内容与链接进行阅读.例如我们每日都要获取新闻信息,利用python爬虫就可以帮助我们爬取 ...

最新文章

  1. 悟道 · 文溯详解:蛋白质序列的大规模预训练
  2. Python 使用readability 提取网页标题
  3. spring连接mysql出现问题_使用spring连接mysql数据库出错
  4. 阿里巴巴Dubbo实现的源码分析
  5. 七年级认识计算机课件,认识计算机(七年级)ppt课件
  6. linux安装Git依赖的包出错,Centos6.7安装编译安装最新Git2.10.1
  7. 分享50佳高质量免费按钮图标资源(上篇)[zz]
  8. C#接口。 隐式实现与显式实现
  9. 这 8款开源思维导图工具真的很神奇【程序员必备学习工具】
  10. android expandablelistview横向,ExpandableListView的使用多级列表
  11. Windows XP 64位注册表删除问题
  12. Android创建本地文件时没有权限的怪现象
  13. JUC学习笔记(二)——常用的辅助类
  14. redis streams_如何使用Redis Streams
  15. 回归- Regression
  16. Linux软件的安装
  17. PyTorch实现断点继续训练
  18. Java之日志打印占位符
  19. FHQ Treap【基于P3369的讲解】【随机数、各数组、函数运用】
  20. 重新理解创业——一个创业者的途中思考

热门文章

  1. fpga外部输入信号处理方法
  2. 【服务号】微信服务号开发-token验证
  3. CentOS7 上安装 Postgresql
  4. 精选的iapp明星艺术签名设计源码开源,让你轻松打造个性签
  5. 疯传 让你的产品、思想、行为像病毒一样入侵
  6. laravel-admin saving回调失败/未成功可能原因
  7. 古月居 ROS 21 讲7
  8. 16x16点阵c语言程序的十六进制,16X16点阵C语言程序(16X16 bitmap C language program).doc...
  9. 北欧又一国家布局量子
  10. SpringBoot+钉钉自定义机器人预警通知