#coding:utf8#------------------------------------------------------#Filename: getWeather.py#Revision: 1.0#Date: 2018/08/17#Author: Jim#Description:#Notes: 通过调用高德API获取天气数据#key: 6ca7b720f2ab2a48f749c1e19c3d1c47#高德API相关文档: https://lbs.amap.com/api/#获取天气: https://restapi.amap.com/v3/weather/weatherInfo?city=110101&key=#如:https://restapi.amap.com/v3/weather/weatherInfo?city=110101&key=6ca7b720f2ab2a48f749c1e19c3d1c47#------------------------------------------------------

importtime, re, os, sys, time,urllib2,shutil,stringimportjson,datetime,MySQLdbfrom dateutil.parser importparse#设置utf-8编码格式

reload(sys)

sys.setdefaultencoding("utf-8")#获取当前日期的前n天

def getbeforeDay(n=0):

now_time=datetime.datetime.now()

beforeday= now_time -datetime.timedelta(n)return beforeday.strftime("%Y%m%d")

scriptDir=os.getcwd()if len(sys.argv) > 1:

job_date_id= sys.argv[1]else:

job_date_id=getbeforeDay(0)print "当前脚本路径:%s,当前参数日期:%s" %(scriptDir,job_date_id)#保存数据到文件文件

def saveContext(filename,*name):

format= '^'dev_prd_flag= 'prd'context=name[0]for i in name[1:]:

context= context + format +str(i)

context= str(context).replace('(','(').replace(')',')').replace(',',',').replace(':',':')if dev_prd_flag != 'prd':printcontextelse:#去除文件路径名首位空格

filename =filename.strip()#读取目录名称

path =os.path.dirname(filename)#如果目录不存在则创建目录

if notos.path.exists(path):

os.makedirs(path)#读取文件名称,以追加的方式写文件

name =os.path.basename(filename)

fp= open(filename,'a')

fp.write(context+'\n')

fp.close()#获取网页文件

def getHtml(url,code='utf-8'):

headers={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.137 Safari/537.36 LBBROWSER'}

request= urllib2.Request(url,headers=headers)

response= urllib2.urlopen(request,data=None,timeout=60)

html=unicode(response.read(),str(code))returnhtmlclassConMysql():def __init__(self,host='192.168.122.140',user='shutong',passwd='shutong',db='edw'):print "连接mysql数据库"

try:

conn=MySQLdb.connect(

host=host,

port= 3306,

user=user,

passwd=passwd,

db=db,

charset='utf8',

)

self.conn=connprint "连接mysql成功"

except:print "连接mysql失败"

defexecSQL(self,sql):print "执行语句:%s" %(sql)

cur=self.conn.cursor()

cur.execute('set character_set_client = utf8')

cur.execute('set character_set_server = utf8')

cur.execute('set character_set_connection = utf8')

cur.execute('set character_set_results = utf8')

cur.execute('set collation_connection = utf8_general_ci')

cur.execute('set collation_server = utf8_general_ci')

result=cur.fetchmany(cur.execute(sql))

cur.close()

self.conn.commit()returnresult'''析构方法'''

def __del__(self):ifself.conn:

self.conn.close()else:passadcode= "110000"key= "6ca7b720f2ab2a48f749c1e19c3d1c47"

defcrawl_weather(adcode):

url= "https://restapi.amap.com/v3/weather/weatherInfo?city=%s&key=%s" %(adcode,key)

html=getHtml(url)

jsondata=json.loads(html)#省份

province = jsondata['lives'][0]['province']#市

city = jsondata['lives'][0]['province']#区域编码

adcode = jsondata['lives'][0]['adcode']#天气现象

weather = jsondata['lives'][0]['weather']#实时气温 摄氏度

temperature = jsondata['lives'][0]['temperature']#风向

winddirection = jsondata['lives'][0]['winddirection']#风力

windpower = jsondata['lives'][0]['windpower']#空气湿度

humidity = jsondata['lives'][0]['humidity']#数据发布时间

reporttime = jsondata['lives'][0]['reporttime']#日期

date_id = parse(reporttime).strftime('%Y%m%d')#小时

hour_id = parse(reporttime).strftime('%H')printprovince,city,adcode,weather,temperature,winddirection,windpower,humidity,reporttime,date_id,hour_id

sql= "insert ignore into fact_weather_adcode_day values ('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s','%s');" %(province,city,adcode,weather,temperature,winddirection,windpower,humidity,reporttime,date_id,hour_id)printsql

conn.execSQL(sql)

conn=ConMysql()

crawl_weather(adcode)

高德地图 天气java_高德地图API获取天气相关推荐

  1. android自动获取天气,android通过google api获取天气信息示例

    android通过google API获取天气信息 public class WeatherActivity extends Activity { private TextView txCity; p ...

  2. 微信小程序使用百度api获取天气信息 —— 微信小程序教程系列(16)

    之前已经介绍过,如何使用百度地图api来获取地理位置信息 微信小程序的百度地图获取地理位置 -- 微信小程序教程系列(15) 下面介绍使用百度api来获取天气信息. 1> 第一步:先到百度开放平 ...

  3. python 获取天气_Python实现从百度API获取天气的方法

    本文实例讲述了Python实现从百度API获取天气的方法.分享给大家供大家参考.具体实现方法如下: __author__ = 'saint' import os import urllib.reque ...

  4. android调用在线天气服务,android通过google api获取天气信息示例

    android通过google API获取天气信息 复制代码 代码如下: public class WeatherActivity extends Activity { private TextVie ...

  5. php获取天气组件,php获取中国天气,中国天气插件说明,根据IP获取天气情况

    PHP » 编程开发 » php获取中国天气,中国天气插件说明,根据IP获取天气情况 php获取中国天气,中国天气插件说明,根据IP获取天气情况 今天客户端需要获取天气情况,于是查询了一下! 看一下要 ...

  6. 【微信小程序】免费的高德地图api——获取天气(全过程)

    介绍 这里是小编成长之路的历程,也是小编的学习之路.希望和各位大佬们一起成长! 以下为小编最喜欢的两句话: 要有最朴素的生活和最遥远的梦想,即使明天天寒地冻,山高水远,路远马亡. 一个人为什么要努力? ...

  7. Android中基于心知天气API获取天气信息

    Android中基于心知天气获取天气信息 JSON JSON简介 JSON对象 JSON数组 JSON解析 Android中获取天气 获取天气的流程 获取心知天气的API key 获取心知天气的API ...

  8. php通过api获取天气信息,调用API获取城市天气信息

    Code: /* 调用API获取指定城市的天气数据,并输出 */ echo ""; $url="http://m.weather.com.cn/data/10121010 ...

  9. STM32使用ESP8266模块AT指令连接心知天气API获取天气信息

    由于之前使用STM32单片机来开发一些物联网的小项目,接触到了WIFI模块ESP8266,所以写下来记录一下.本文主要介绍的是STM32通过发送AT指令集来控制ESP8266 WIFI模块连接WiFi ...

  10. 利用中央气象台的API获取天气

    小项目算是用三层结构来构架,最上面一层就不写了,直接在service层测试. 中央气象台的接口标准文档我没找到,所以也是参照了别人的应用自己写了一个.. 目录结构为: 这个是根节点 http://fl ...

最新文章

  1. 中国首份自动驾驶路测报告:自主车企全面落后
  2. 小郭经典mysql面试题资料_程序员经典面试题,Mysql是如何完成一次数据查询的...
  3. linux内核网络协议栈--架构分析(十八)
  4. php连接电脑,PHP_深入理解php的MySQL连接类,无意间在电脑里发现还有这么 - phpStudy...
  5. 第三次学JAVA再学不好就吃翔(part100)--文件名称过滤器
  6. SAP Spartacus storefront.component.html 里的 SkipLinkComponent 如何创建的
  7. [No000014]听说不背单词,考英语会是这种下场-我们为什么必须背单词?
  8. 天不知道地知道你不知道我知道谜底_冷门还免费!宝鸡这几个小众红叶观赏地,资深老司机都不一定知道...
  9. C++ Socket通信类的封装(还有点小bug)
  10. 关于pytorch GPU版本安装的问题
  11. java在文本域内添加按钮_JAVA中在窗体中添加了一个文本框,然后再文本框中输入字符,如何...
  12. centos bond配置文件示例
  13. 现在电脑的主流配置_2019~2020电脑配置清单主流配件(下)
  14. 聚聚科技---PHP开发笔试题及答案
  15. Mstar官网下载转换成jpg格式的保姆级教程
  16. win10 企业版激活
  17. 论本我、自我、超我对人工智能的启示
  18. 简述FPGA的一些优势
  19. Android Q 下拉状态栏快捷开关解析
  20. STM32通用定时器实现us微秒延时

热门文章

  1. [云原生专题-59]:Kubesphere云治理-操作-分步部署Web业务平台RuoYi Cloud项目 - 手工上云部署实际过程全部操作步骤
  2. 小牛电动股权曝光:李彦持股4.4% 李一男持股降至28.1%
  3. 荐书丨10 本豆瓣高分技术图书,强烈推荐!
  4. 那些年你用过最好的键盘
  5. 小米手机android目录在哪里设置字体,[小米手机]小米手机MIUI自己制作.MTZ字体包方法 无需ROOT权限...
  6. 主线程启动多个子线程,子线程彼此之间并发执行,互不影响
  7. 点餐系统第一阶段工作总结
  8. php json encode 参数,PHP json_encode函数的参数说明与用法
  9. c语言课程设计作业心得体会,c语言课程设计总结心得
  10. hdu1879继续畅通工程(最小生成树kru算法)