天气预报网址:https://id.heweather.com/,这个网站是需要注册获取一个个人认证后台密钥key的,并且每个人都有访问次数的限制,这个key就是访问API的钥匙。

这个key现在是要自己创建的,名称自己写,key值可以不写,创建的时候会自动生成。

接下来就是要阅读这个API文档。

包括上面怎么创建获取这个key这个API文档也有介绍的。

选择API这部分来阅读。

接口地址:

#获取城市列表
import requests url = 'https://cdn.heweather.com/china-city-list.txt'
response = requests.get(url)
response.encoding='utf8'
data = response.text
data_1 = data.split('\n')
print(data_1)

for i in range(3):
data_1.remove(data_1[0])
for item in data_1:
print(item[0:11])

获取城市ID后,下一步就是调用接口获取数据。

#获取城市数据
import time
import requests url = 'https://cdn.heweather.com/china-city-list.txt'
response = requests.get(url)
response.encoding='utf8'
data = response.text
data_1 = data.split('\n')
for i in range(3):
data_1.remove(data_1[0])
for item in data_1:
url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[1:13]+'&key=232ab5d4b88e46bcb8bd8c06d49ebf91'
strhtml = requests.get(url)
time.sleep(3)
print(strhtml.text)

可以看到数据是以json数据格式返回的。如果要将返回的数据解析出来可以使用for循环。

可以使用JSON在线结构化的工具观察数据结构,网址:http://www.json.org.cn/tools/JSONEditorOnline/index.htm

上图左边是原Json数据,右边显示的是它的保存数据的结构。

#获取城市数据
import os
import time
import requests url = 'https://cdn.heweather.com/china-city-list.txt'
response = requests.get(url)
response.encoding='utf8'
data = response.text
data_1 = data.split('\n')
for i in range(3):
data_1.remove(data_1[0]) temp = 1
for item in data_1:
url = 'https://free-api.heweather.net/s6/weather/forecast?location='+item[1:13]+'&key=232ab5d4b88e46bcb8bd8c06d49ebf91'
strhtml = requests.get(url)
time.sleep(3)
dic = strhtml.json()
if(temp>3):
#获取风向值
print(dic['HeWeather6'][0]['daily_forecast'][0]['wind_dir'])
#获取最低气温
print(dic['HeWeather6'][0]['daily_forecast'][0]['tmp_min'])
#获取最高气温
print(dic['HeWeather6'][0]['daily_forecast'][0]['tmp_max'])
print('================')
else:
temp+=1

吴裕雄--天生自然PYTHON爬虫:用API爬出天气预报信息的更多相关文章

  1. 吴裕雄--天生自然PYTHON爬虫:使用Selenium爬取大型电商网站数据

    用python爬取动态网页时,普通的requests,urllib2无法实现.例如有些网站点击下一页时,会加载新的内容,但是网页的URL却没有改变(没有传入页码相关的参数),requests.urll ...

  2. 吴裕雄--天生自然PYTHON爬虫:爬取某一大型电商网站的商品数据(效率优化以及代码容错处理)

    这篇博文主要是对我的这篇https://www.cnblogs.com/tszr/p/12198054.html爬虫效率的优化,目的是为了提高爬虫效率. 可以根据出发地同时调用多个CPU,每个CPU运 ...

  3. 吴裕雄--天生自然PYTHON爬虫:使用Scrapy抓取股票行情

    Scrapy框架它能够帮助提升爬虫的效率,从而更好地实现爬虫.Scrapy是一个为了抓取网页数据.提取结构性数据而编写的应用框架,该框架是封装的,包含request异步调度和处理.下载器(多线程的Do ...

  4. 吴裕雄--天生自然PYTHON爬虫:爬虫攻防战

    我们在开发者模式下不仅可以找到URL.Form Data,还可以在Request headers 中构造浏览器的请求头,封装自己.服务器识别浏览器访问的方法就是判断keywor是否为Request h ...

  5. 吴裕雄--天生自然PYTHON爬虫:安装配置MongoDBy和爬取天气数据并清洗保存到MongoDB中

    1.下载MongoDB 官网下载:https://www.mongodb.com/download-center#community 上面这张图选择第二个按钮 上面这张图直接Next 把bin路径添加 ...

  6. 吴裕雄--天生自然PYTHON爬虫:使用BeautifulSoup解析中国旅游网页数据

    import requests from bs4 import BeautifulSoup url = "http://www.cntour.cn/" strhtml = requ ...

  7. 吴裕雄--天生自然python爬虫:使用requests模块的get和post方式抓取中国旅游网站和有道翻译网站翻译内容数据

    import requests url = 'http://www.cntour.cn/' strhtml = requests.get(url) print(strhtml.text) URL='h ...

  8. 吴裕雄--天生自然python学习笔记:爬取我国 1990 年到 2017年 GDP 数据并绘图显示

    绘制图形所需的数据源通常是不固定的,比如,有时我们会需要从网页抓取, 也可能需从文件或数据库中获取. 利用抓取网页数据技术,把我国 1990 年到 2016 年的 GDP 数据抓取出来 ,再利用 Ma ...

  9. 吴裕雄--天生自然python学习笔记:Python3 错误和异常

    语法错误 Python 的语法错误或者称之为解析错,是初学者经常碰到的,如下实例 >>>while True print('Hello world') File "< ...

随机推荐

  1. PHP加JS实现分片上传,断点续传

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"/> <title> ...

  2. 通过POI实现上传EXCEL的批量读取数据写入数据库

    最近公司新增功能要求导入excel,并读取其中数据批量写入数据库.于是就开始了这个事情,之前的文章,记录了上传文件,本篇记录如何通过POI读取excel数据并封装为对象上传. 上代码: 1.首先这是一 ...

  3. jQuery之绑定焦点事件(焦点事件失效)

    在使用jQuery绑定事件时,若某个事件不存在,则该事件后 绑定的事件均失效: 如图所示,若失去焦点事件checkEmail不存在, 会导致后面的事件checkMobile,和事件checkBirth ...

  4. oracle导入失败,超出长度

    oracle导入失败,超出长度 出现ORA-12899,是字符集引起的,中文在UTF-8中占3个字节,ZHS16GBK中占2个字节,而源dmp文件字符集是ZHS16GBK库里倒出来的数据,现在要导入到 ...

  5. Python:列表类型

    概念 列表:有序的,可变的,元素集合 因为列表和字符串都是序列类型,所以很多操作和字符串很相似 但是注意:列表是可变类型,字符串是不可变类型 定义 基本定义 定义方法:[ 元素1, 元素2, .... ...

  6. PowerDesigner每点击一次就会提示打印错误对话框

    把服务启用了就好了: 重启软件

  7. Maven学习笔记:POM标签大全详解

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  8. java 生成签名文件

    如何使用jdk中的keytool.exe生成一个签名文件? 1.通过命令行cmd进入jdk的bin目录下,会发现有一个keytool.exe文件 执行命令:keytool -genkey -alias ...

  9. same-security-traffic

    关于Inter-interface和intra-interface: 要允许具有相同安全级别的接口之间的通信,或允许流量进入和退出同一接口,请在全局配置模式下使用same-security-traff ...

  10. 关于永久POE

    1.传统POE 在我们的企业网络中,经常会使用交换机给IP电话或者无线AP供电,以使得其正常的工作. 正常情况下,我们都知道,普通的POE是在PSE交换机启动完成后,然后再给PD(Power Devi ...