1.注册免费API和阅读技术文档:

  注册地址:https://console.heweather.com

  文档地址:https://www.heweather.com/documents/api-url

在文档中可以看到很多参数

返回的是json数据

2.获取API数据:

获取城市列表:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:XXC
import requests
url='https://cdn.heweather.com/china-city-list.txt'
strhtml = requests.get(url)
data = strhtml.text
data1 = data.split("\n")
for i in range(6): #因为前六行不需要,所以没有打印
data1.remove(data1[0])
for item in data1:
print(item[2:13])

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:XXC
import requests
import time
url='https://cdn.heweather.com/china-city-list.txt'
strhtml = requests.get(url)
data = strhtml.text
data1 = data.split("\n")
for i in range(6): #因为前六行不需要,所以没有打印
data1.remove(data1[0])
for item in data1:
# print(item[2:13])
url = 'https://free-api.heweather.com/v5/forecast?city='+item[2:13]+'&key=7d0daf2a85f64736a42261161cd3060b'
strhtml = requests.get(url)
time.sleep(1)
print(strhtml.text)

获取当天温度的最大值:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:XXC
import requests
import time
url='https://cdn.heweather.com/china-city-list.txt'
strhtml = requests.get(url)
data = strhtml.text
data1 = data.split("\n")
for i in range(6): #因为前六行不需要,所以没有打印
data1.remove(data1[0])
for item in data1:
# print(item[2:13])
url = 'https://free-api.heweather.com/v5/forecast?city='+item[2:13]+'&key=7d0daf2a85f64736a42261161cd3060b'
strhtml = requests.get(url)
time.sleep(1)
dic = strhtml.json()
for item in dic["HeWeather5"][0]["daily_forecast"]:
print(item["tmp"]["max"])

往mysql数据库中存入id,city,cnty三个字段数据:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:XXC
import json
import pymysql
import requests
import time def prem(db):
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()
print("Database version : %s " % data) # 结果表明已经连接成功
cursor.execute("DROP TABLE IF EXISTS weatherInfo") # 如果存在表就删除原表
sql = """CREATE TABLE weatherInfo (
id varchar(20),
city varchar(20),
cnty varchar(20))"""
cursor.execute(sql) # 根据需要创建一个表格 def reviewdata_insert(db):
url = 'https://cdn.heweather.com/china-city-list.txt'
strhtml = requests.get(url)
data = strhtml.text
data1 = data.split("\n")
for i in range(6): # 因为前六行不需要,所以没有打印
data1.remove(data1[0])
for item in data1:
# print(item[2:13])
url = 'https://free-api.heweather.com/v5/forecast?city=' + item[2:13] + '&key=7d0daf2a85f64736a42261161cd3060b'
strhtml = requests.get(url)
time.sleep(1)
dic = strhtml.json()
id = dic["HeWeather5"][0]["basic"]["id"]
city = dic["HeWeather5"][0]["basic"]["city"]
cnty = dic["HeWeather5"][0]["basic"]["cnty"]
result=[]
result.append((id,city,cnty))
insert_we = "insert into weatherInfo(id,city,cnty) values (%s,%s,%s)"
cursor = db.cursor()
cursor.executemany(insert_we, result)
db.commit() if __name__ == "__main__": # 起到一个初始化或者调用函数的作用
db = pymysql.connect("localhost", "root", "", "test", charset='utf8')
cursor = db.cursor()
prem(db)
reviewdata_insert(db)
cursor.close()

执行结果:

用API爬取天气预报数据的更多相关文章

  1. 和风api爬取天气预报数据

    ''' 和风api爬取天气预报数据 目标:https://free-api.heweather.net/s6/weather/forecast?key=cc33b9a52d6e48de85247779 ...

  2. 百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制11。

    1.POI爬取方法说明 1.1AK申请 登录百度账号,在百度地图开发者平台的API控制台申请一个服务端的ak,主要用到的是Place API.检校方式可设置成IP白名单,IP直接设置成了0.0.0.0 ...

  3. python爬取拉勾网数据并进行数据可视化

    爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示.直方图展示.词云展示等并根据可视化的数据做 ...

  4. python爬虫爬取天气数据并图形化显示

    前言 使用python进行网页数据的爬取现在已经很常见了,而对天气数据的爬取更是入门级的新手操作,很多人学习爬虫都从天气开始,本文便是介绍了从中国天气网爬取天气数据,能够实现输入想要查询的城市,返回该 ...

  5. 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)

    最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...

  6. Golang+chromedp+goquery 简单爬取动态数据

    目录 Golang+chromedp+goquery 简单爬取动态数据 Golang的安装 下载golang软件 解压golang 配置golang 重新导入配置 chromedp框架的使用 实际的代 ...

  7. 毕设之Python爬取天气数据及可视化分析

    写在前面的一些P话:(https://jq.qq.com/?_wv=1027&k=RFkfeU8j) 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向. ...

  8. Node.js爬取豆瓣数据

    一直自以为自己vue还可以,一直自以为webpack还可以,今天在慕课逛node的时候,才发现,自己还差的很远.众所周知,vue-cli基于webpack,而webpack基于node,对node不了 ...

  9. Python爬取房产数据,在地图上展现!

    小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. ...

随机推荐

  1. 关于jdk7中 使用Collections的排序方法时报Comparison method violates its general contract!异常

    参考: Comparison method violates its general contract Comparison method violates its general contract! ...

  2. Java 程序员最喜欢的 11 款免费 IDE 编辑器

    Java开发人员需要花费大量的时间埋头于Java代码中,使用各种不同的IDE(Intergrated Development Environment)来开发Java代码,所以下面我将为大家介绍11个不 ...

  3. vmware workstation 12 密钥

    VMware Workstation 12序列号:5A02H-AU243-TZJ49-GTC7K-3C61N

  4. [GO]通过结构体生成json

    package main import ( "encoding/json" "fmt" ) type IT struct { //一定要注意这里的成员变量的名字 ...

  5. C#开发重用方法

    获取类型先关信息 GetType()及typeof()

  6. mongodb新建用户,

    1.用管理 员用户登录mongoDB use hzb_test db.createUser({user: "hzb",pwd: "hzb",roles: [{ ...

  7. Union、Union All、Intersect、Minus

    转自:http://www.2cto.com/database/201208/148795.html Union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序: Union All: ...

  8. IE6,7,8 CSS HACK

    1.区别IE和非IE浏览器CSS HACK代码 #divcss5{ background:blue; /*非IE 背景藍色*/ background:red \9; /*IE6.IE7.IE8背景紅色 ...

  9. Java内存模型(转载)

    本文章节: 1.JMM简介 2.堆和栈 3.本机内存 4.防止内存泄漏 1.JMM简介 i.内存模型概述 Java平台自动集成了线程以及多处理器技术,这种集成程度比Java以前诞生的计算机语言要厉害很 ...

  10. Vue.js的库,包,资源的列表大全。

    官方资源 外部资源 社区 播客 官方示例 入门 开发工具 语法高亮 代码片段 自动补全 组件集合 库和插件 路由 ajax/数据 状态管理 校验 UI组件 i18n 示例 模板 脚手架 整合 插件/指 ...