用API爬取天气预报数据
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爬取天气预报数据的更多相关文章
- 和风api爬取天气预报数据
''' 和风api爬取天气预报数据 目标:https://free-api.heweather.net/s6/weather/forecast?key=cc33b9a52d6e48de85247779 ...
- 百度地图POI数据爬取,突破百度地图API爬取数目“400条“的限制11。
1.POI爬取方法说明 1.1AK申请 登录百度账号,在百度地图开发者平台的API控制台申请一个服务端的ak,主要用到的是Place API.检校方式可设置成IP白名单,IP直接设置成了0.0.0.0 ...
- python爬取拉勾网数据并进行数据可视化
爬取拉勾网关于python职位相关的数据信息,并将爬取的数据已csv各式存入文件,然后对csv文件相关字段的数据进行清洗,并对数据可视化展示,包括柱状图展示.直方图展示.词云展示等并根据可视化的数据做 ...
- python爬虫爬取天气数据并图形化显示
前言 使用python进行网页数据的爬取现在已经很常见了,而对天气数据的爬取更是入门级的新手操作,很多人学习爬虫都从天气开始,本文便是介绍了从中国天气网爬取天气数据,能够实现输入想要查询的城市,返回该 ...
- 用Python爬取股票数据,绘制K线和均线并用机器学习预测股价(来自我出的书)
最近我出了一本书,<基于股票大数据分析的Python入门实战 视频教学版>,京东链接:https://item.jd.com/69241653952.html,在其中用股票范例讲述Pyth ...
- Golang+chromedp+goquery 简单爬取动态数据
目录 Golang+chromedp+goquery 简单爬取动态数据 Golang的安装 下载golang软件 解压golang 配置golang 重新导入配置 chromedp框架的使用 实际的代 ...
- 毕设之Python爬取天气数据及可视化分析
写在前面的一些P话:(https://jq.qq.com/?_wv=1027&k=RFkfeU8j) 天气预报我们每天都会关注,我们可以根据未来的天气增减衣物.安排出行,每天的气温.风速风向. ...
- Node.js爬取豆瓣数据
一直自以为自己vue还可以,一直自以为webpack还可以,今天在慕课逛node的时候,才发现,自己还差的很远.众所周知,vue-cli基于webpack,而webpack基于node,对node不了 ...
- Python爬取房产数据,在地图上展现!
小伙伴,我又来了,这次我们写的是用python爬虫爬取乌鲁木齐的房产数据并展示在地图上,地图工具我用的是 BDP个人版-免费在线数据分析软件,数据可视化软件 ,这个可以导入csv或者excel数据. ...
随机推荐
- opencv在64位4418上的移植
1.mkdir build 2.cmake-gui 操作系统写Linux 去掉 去掉WITH_CUDA 去掉WITH_GTK 去掉WITH_1394 去掉WITH_GSTREAMER 去掉WITH_L ...
- crontab定期执行shell脚本
[场景]: 需要定期运行Hadoop的MapReduce [解决办法]: 编写一个运行MapReduce的Shell脚本.然后使用crontab配置定时任务. [Shell脚本] #!/usr/bin ...
- 关于设置了setMaxAge(0)而浏览器未成功删除Cookie的注意事项
最近做了个系统,其中涉及到对Cookie的操作.当用户登录时,设置一些数据到Cookie中,用户登出系统的时候删除写入浏览器中的对应Cookie.问题就出在登出系统时,在firebug中看到需要删除的 ...
- Linux比较操作符
http://blog.csdn.net/ithomer/article/details/6836382
- yii2 Html::a
Html::a($text,$url = null,$options = []) $url 可以直接是字符串 // An empty string. This will return the curr ...
- ettercap dns_spoof
首先编辑网页,打开apache2服务器,编辑好etter.dns 然后开始ettercap -G 的操作 sniff选择好自己使用的网卡 scan hosts ,扫描完将目标和网关添加到目标一目标二 ...
- SpringMVC源码解读 - RequestMapping注解实现解读 - RequestMappingInfo
使用@RequestMapping注解时,配置的信息最后都设置到了RequestMappingInfo中. RequestMappingInfo封装了PatternsRequestCondition, ...
- iPhone Development – core data relationships tutorial part 1
I’m going to start a short series on Core Data relationships and maybe throw in some general Core Da ...
- centos 7 安装jdk8
到官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择liunx的tar.gz文件下载 下载好后 ...
- JVM 方法调用之解析
方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还没有涉及到方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍最频繁的操作,但Class文件 ...