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

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

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

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

返回的是json数据

2.获取API数据:

获取城市列表:

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

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

获取当天温度的最大值:

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

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

  1. #!/usr/bin/env python
  2. # -*- coding:utf-8 -*-
  3. # Author:XXC
  4. import json
  5. import pymysql
  6. import requests
  7. import time
  8.  
  9. def prem(db):
  10. cursor = db.cursor()
  11. cursor.execute("SELECT VERSION()")
  12. data = cursor.fetchone()
  13. print("Database version : %s " % data) # 结果表明已经连接成功
  14. cursor.execute("DROP TABLE IF EXISTS weatherInfo") # 如果存在表就删除原表
  15. sql = """CREATE TABLE weatherInfo (
  16. id varchar(20),
  17. city varchar(20),
  18. cnty varchar(20))"""
  19. cursor.execute(sql) # 根据需要创建一个表格
  20.  
  21. def reviewdata_insert(db):
  22. url = 'https://cdn.heweather.com/china-city-list.txt'
  23. strhtml = requests.get(url)
  24. data = strhtml.text
  25. data1 = data.split("\n")
  26. for i in range(6): # 因为前六行不需要,所以没有打印
  27. data1.remove(data1[0])
  28. for item in data1:
  29. # print(item[2:13])
  30. url = 'https://free-api.heweather.com/v5/forecast?city=' + item[2:13] + '&key=7d0daf2a85f64736a42261161cd3060b'
  31. strhtml = requests.get(url)
  32. time.sleep(1)
  33. dic = strhtml.json()
  34. id = dic["HeWeather5"][0]["basic"]["id"]
  35. city = dic["HeWeather5"][0]["basic"]["city"]
  36. cnty = dic["HeWeather5"][0]["basic"]["cnty"]
  37. result=[]
  38. result.append((id,city,cnty))
  39. insert_we = "insert into weatherInfo(id,city,cnty) values (%s,%s,%s)"
  40. cursor = db.cursor()
  41. cursor.executemany(insert_we, result)
  42. db.commit()
  43.  
  44. if __name__ == "__main__": # 起到一个初始化或者调用函数的作用
  45. db = pymysql.connect("localhost", "root", "", "test", charset='utf8')
  46. cursor = db.cursor()
  47. prem(db)
  48. reviewdata_insert(db)
  49. 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. opencv在64位4418上的移植

    1.mkdir build 2.cmake-gui 操作系统写Linux 去掉 去掉WITH_CUDA 去掉WITH_GTK 去掉WITH_1394 去掉WITH_GSTREAMER 去掉WITH_L ...

  2. crontab定期执行shell脚本

    [场景]: 需要定期运行Hadoop的MapReduce [解决办法]: 编写一个运行MapReduce的Shell脚本.然后使用crontab配置定时任务. [Shell脚本] #!/usr/bin ...

  3. 关于设置了setMaxAge(0)而浏览器未成功删除Cookie的注意事项

    最近做了个系统,其中涉及到对Cookie的操作.当用户登录时,设置一些数据到Cookie中,用户登出系统的时候删除写入浏览器中的对应Cookie.问题就出在登出系统时,在firebug中看到需要删除的 ...

  4. Linux比较操作符

    http://blog.csdn.net/ithomer/article/details/6836382

  5. yii2 Html::a

    Html::a($text,$url = null,$options = []) $url 可以直接是字符串 // An empty string. This will return the curr ...

  6. ettercap dns_spoof

    首先编辑网页,打开apache2服务器,编辑好etter.dns 然后开始ettercap -G 的操作 sniff选择好自己使用的网卡 scan hosts ,扫描完将目标和网关添加到目标一目标二 ...

  7. SpringMVC源码解读 - RequestMapping注解实现解读 - RequestMappingInfo

    使用@RequestMapping注解时,配置的信息最后都设置到了RequestMappingInfo中. RequestMappingInfo封装了PatternsRequestCondition, ...

  8. 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 ...

  9. centos 7 安装jdk8

    到官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 选择liunx的tar.gz文件下载 下载好后 ...

  10. JVM 方法调用之解析

    方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还没有涉及到方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍最频繁的操作,但Class文件 ...