基于python的数据爬取与分析,python获取经纬度
新:国外疫情网站介绍
更新:抓取国外疫情数据。
更新:下载新型肺炎历史数据
2020年3月27日补充:
制作了一个全球肺炎数据查询和下载网站,结果如下:
地址:3358119.3.227.192: 3000/#/
3月28日更新:
鉴于有人说丁香医生的接口数据无法访问,就改成了百度疫情数据,重新打包了一个工具,百度云盘地址:
链接:https://pan.baidu.com/s/1-nqi6uhCJYAi8kVDqGiYCw
提货代码:6小时
新型肺炎在全国肆虐。可以预见,最近一两年地理学会有一些论文研究新型肺炎的空间分布,以及与其他指标的相关性分析。获得其患者的分布数据对科学研究有一定的指导意义。所以用python抓取丁香医生的实时数据,打包成exe文件,可以直接在本地执行,不需要配置环境。当然,抓取的数据没有经纬度信息。这里我使用百度地图开发者平台,通过城市名称获取经纬度坐标。
软件下载地址:
无纬度和经度(可用)
链接:https://pan.baidu.com/s/1ffcGv7CsaKPPDohFd03pww
挑选代码:ibql
带经纬度(受百度地图api调用限制)
链接:https://pan.baidu.com/s/1zgPIre_39eG9iQfxTxq1Fg
提货代码:1tmi
执行效果如下:
对比一下丁香医生的数据:
完整的代码如下:
无经纬度代码:
导入请求,re import JSON import time import CSV URL= https://service-f 9 fjwngp-1252021671 . bj . API GW . Tencent cs . com/release/pneumonia html=requests . get(URL)。text unicode str=JSON . loads(html)# Convert string to dict dat=unicode str[ data ]。Get( statistics )[ modify time ]#获取数据中的内容,检索到的内容为strtimearray=time . local time(DAT/1000)format time=time . strftime( % y-% m-% d % h:% m ,time array)new _ list=unicode str . Get( data )。Get (listbyarea) #获取数据中的内容,提取的内容为strj=0 print( # # # # # # # # # # # # 版权所有:jzdym 数据来源:丁香医生 # # # # # # # # # # # # # )而Jlen(new _ list):[ province name ]header=[时间,城市,确诊人数,疑似病例,死亡人数,治愈人数] with open(。/s 。csv ,encoding= utf-8-sig ,mode= w Newline= )as f:# encoding utf-8后跟-sig可以解决csv中中文书写乱码的问题f _ CSV=CSV . writer(f)f _ CSV . writerow(header)f . close()def save _ data(data):with open(。/s 。 csv ,编码=UTF-8 ,模式=a ,换行= )as f:f _ CSV=CSV . writer(f)f _ CSV . writerow(data)f . close()b=len(a)I=0 while IB:data=(format time)confirm=(a[I][已确认])City=(a[I][ City name ])suspect=(a[I][疑似]) dead=(a [I] [已死亡]) heal=(a [I
导入请求,重新导入JSON导入时间从URL lib导入CSV。请求导入URL打开,引用URL= https://service-f 9 fjwngp-1252021671。bj。API GW。腾讯cs。 html=requests。获取(URL).textunicodestr=JSON。负载(html)#将线转化为dictdat=unicodestr[data].get( statistics )[ modify time ]#获取数据中的内容,取出的内容为strtimeArray=时间。本地时间(dat/1000)格式时间=时间。strftime( % Y-% M-% d % H:% M ,时间数组)URL= http://API。地图。百度一下。com/geocoder/v2/ output= JSON AK= xec fcy 777 qdmtksqyc 3 ltigpnma 7 fqzy #你的AK new _ list=unicode str。get( data ).get(listByArea) #获取数据中的内容,取出的内容为strj=0print(############ 版权所有:jzdym 数据来源:丁香医生 ############# )而j len(new _ list):a=new _ list[j][城市]s=new _ list[j][省名]header=[时间, 城市, 确诊人数, 疑似病例, 死亡人数, 治愈人数 ,经度,纬度]带开(。/的.csv ,编码=utf-8-sig ,模式=w ,换行符= )作为女:#编码utf-8后加-签名可解决战斗支援车中文写入乱码问题f _ CSV=CSV。作家(f)f _ CSV。writerow(header)f . close()def save _ data(data):with open(./ s . s csv ,编码=UTF八号,模式=a ,换行= )作为f:f _ CSV=CSV。作家(f)f _ CSV。writerow(data)f . close()b=len(a)I=0而IB:data=(格式化时间)confirm=(a[I][已确认])city=(a[I][城市名])suspect=(a[I][疑似]) dead=(a[i][已死亡]) heal=(a[i地址=添加输出=输出ak= ak #百度地理编码API req=urlopen(uri)RES=req。阅读().decode()temp=JSON。loads(RES)if temp[ status ]==1:temp[ result ]={ location :{ LNG :0, lat :0 } } lon=temp[ result ][ location ][ location ][ location ][ location ][ lat ]I=1 tap=(data,city,confirm,suspect,dead,heal,lon,lat) save_data(tap) j=1 print(s 下载结束!)打印( #########)数据下载结束#########)
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。