API爬取天气预报数据

"""

该网站为个人开发者提供免费的天气预报数据,自行访问官网注册,在控制台看到个人的key。

然后看API文档,基本可以开发了,有访问次数限制。

"""

爬取数据代码

import requests

import time

import pymongo

"""

和风天气API提供了3000多个城市的天气预报,我们先获取这些城市的cid,

再循环获取3000个城市的天气预报,

存入mongodb

"""

#建立mongodb的连接

client=pymongo.MongoClient(host="localhost",port=27017)

#建立数据库weather

book_weather=client['weather']

#在weather数据库中建立集合:sheet_collection_1

sheet_weather=book_weather['sheet_collection_1']

1:获取网站给我们提供的天气预报csv文件。

#获取city的cid地区/城市IDCN101080402

#:获取城市列表的url

url="https://a.hecdn.net/download/dev/china-city-list.csv"

#请求ulr

strhtml=requests.get(url)

strhtml.encoding='utf-8'

#返回字符串内容,csv格式

data=strhtml.text

# print(data)

#转为列表

data1=data.split('\r')

#去除前两行标题头

for i in range(2):

data1.remove(data1[0])

for item in data1:

# print(item[0:12])

2:调用接口获取数据

weather_url='https://free-api.heweather.net/s6/weather/now?location='+item[0:12].strip()+'&key=13e99fe03be0440cb9ff12e2edfe1ab6'

# print(weather_url)

weather_html=requests.get(weather_url)

weather_html.encoding="utf-8"

time.sleep(2)

# print(weather_html.text)

dic=weather_html.json()

3:通过在线json解析工具,找到我们需要的数据,再插入到mongodb中

city=dic["HeWeather6"][0]["basic"]["location"]

twt=dic["HeWeather6"][0]["now"]["tmp"]

ws=dic["HeWeather6"][0]["now"]["cond_txt"]

w_date=dic["HeWeather6"][0]["update"]["loc"]

#插入数据到mongodb中

sheet_weather.insert_one({"城市":city,"气温":twt,"天气情况":ws,"天气日期":w_date})

print("城市代码:{0}".format(item[0:12].strip()))

4调试能获取到想要的数据之后,

传到linux系统中运行

ubuntu@ubuntu:~$ rz -y

rz waiting to receive.

Starting zmodem transfer. Press Ctrl+C to cancel.

Transferring pymongo-3.10.1-cp37-cp37m-manylinux2014_x86_64.whl...

100% 451 KB 451 KB/sec 00:00:01 0 Errors

#安装pymongo

ubuntu@ubuntu:~$ pip3 install pymongo-3.10.1-cp37-cp37m-manylinux2014_x86_64.whl

Defaulting to user installation because normal site-packages is not writeable

Processing ./pymongo-3.10.1-cp37-cp37m-manylinux2014_x86_64.whl

Installing collected packages: pymongo

Successfully installed pymongo-3.10.1

#运行

ubuntu@ubuntu:~$ nohup python get_city.py &

[1] 12938

ubuntu@ubuntu:~$ nohup: ignoring input and appending output to 'nohup.out'

#查看,输出

ubuntu@ubuntu:~$ tail -f nohup.out

城市代码:CN101010100

城市代码:CN101010200

城市代码:CN101010300

城市代码:CN101010400

城市代码:CN101010500

城市代码:CN101010600

php解析和风天气api,API爬取天气预报数据相关推荐

  1. 【爬虫】2.6 实践项目——爬取天气预报数据

    1. 项目简介 在中国天气网(http://www.weather.com.cn)中输入一个城市的名称,例如输入深圳,那么会转到地址http://www.weather.com.cn/weather1 ...

  2. python爬取天气预报数据,并实现数据可视化

    文章目录 一.前言 二.爬取目标及结果展示 三.页面分析 四.完整代码 五.补充 六.不足(经读者反馈) 一.前言 在爬取数据时,有些数据,如图片.视频等等,爬到就是赚到:而有时候,我们爬到的可能只是 ...

  3. python爬取天气数据山东_Python爬取天气预报数据,并存入到本地EXCEL中-Go语言中文社区...

    近期忙里偷闲,搞了几天python爬虫,基本可以实现常规网络数据的爬取,比如糗事百科.豆瓣影评.NBA数据.股票数据.天气预报等的爬取,整体过程其实比较简单,有一些HTML+CSS+DOM树等知识就很 ...

  4. python爬取天气预报数据并保存为txt格式_今天分享一个用Python来爬取小说的小脚本!(附源码)...

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理. 以下文章天气预报数据分析与统计之美 ,作者:❦大头雪糕❦ Python GUI制作小说下载器教学讲 ...

  5. Github API:爬取Github用户数据

    Github API:爬取Github用户数据 引言 目标:根据给定的论文中中文作者的英文名字(实际上就是拼音),从Github上获取用户邮箱信息. 一.Github API介绍 详细的开发者文档 想 ...

  6. python爬去新浪微博_!如何通过python调用新浪微博的API来爬取数据

    python抓取新浪微博,求教 爬手机端 可以参考的代码, #-*-coding:utf8-*- import smtplib from email.mime.text import MIMEText ...

  7. python爬斗鱼直播_Python爬虫:利用API实时爬取斗鱼弹幕

    原标题:Python爬虫:利用API实时爬取斗鱼弹幕 这些天一直想做一个斗鱼爬取弹幕,但是一直考试时间不够,而且这个斗鱼的api接口虽然开放了但是我在github上没有找到可以完美实现连接.我看了好多 ...

  8. 使用和风天气 API 10分钟搭建天气预报数据看板

    本文首发:<使用和风天气 API 10分钟搭建天气预报数据看板)> 使用和风天气 API 10分钟搭建天气预报数据看板 第 1 步:注册和风天气 API 及卡拉云 (1)注册和风天气 AP ...

  9. python获取天气分析_Python爬取南京市往年天气预报,使用pyecharts进行分析

    上一次分享了使用matplotlib对爬取的豆瓣书籍排行榜进行分析,但是发现python本身自带的这个绘图分析库还是有一些局限,绘图不够美观等,在网上搜索了一波,发现现在有很多的支持python的绘图 ...

最新文章

  1. 用国内镜像源pip加速安装模块
  2. Flutter中通过循环渲染组件
  3. asp连接不到我mysql里_ASP连接MYSQL问题点解决
  4. VTK:图片之ImageMagnify
  5. 远方 vs How did I fall in love with you
  6. 割线法求解过程_求解稀疏优化问题2——临近点方法+半光滑牛顿法
  7. redmine-project.net vs redmine vs trac vs apis项目管理软件选型比较
  8. java定义一个空数组_一个 Java 方法,最多能定义多少参数?
  9. C# CAD二次开发之字体替换 文字样式 处理DBText
  10. android怎么配置雷电模拟器,雷电模拟器设置_雷电安卓模拟器怎么设置分辨率
  11. 红米4x 刷android 8.0,【红米4X 安卓6.0.1救砖线刷包】免解锁MIUI V8.5.4.0.MAMCNED稳定版 精简线刷包...
  12. 01_多操作系统课题研究[2011-01-21]
  13. 继微博之后,.fans建站成饭圈新宠
  14. 彻底搞懂二进制、进制换算如此简单!十进制转化二进制,二进制转化十进制
  15. 哈哈日语 日语五十音学记资料汇编
  16. 服务器只读团体字信息,服务器团体名配置
  17. 机器学习——贝叶斯算法(一)
  18. 活期存款利息的计算方法
  19. 1.7.1 容器类数据-列表
  20. 微计算机断层扫描的用途以及测试样品要求

热门文章

  1. 淘宝店小蜜配置手册——店小蜜模式的设置
  2. 华为智慧屏 招一招新玩法,手机操控智慧屏,视频搜索,播放控制,截图分享轻松搞定
  3. jQuery 插件安装
  4. PTA练习-- 寻宝,小明有一张藏宝图,上面有m*n个房间,每个房间里面都有一个有一定价值的宝物,小明只能从左上角的房间进入收集宝物...(动态规划)
  5. 如何制造一个Android智能手机
  6. 三大视频网站的会员争抢大战,电商化成为趋势?
  7. window系统 选择性粘贴 快捷键
  8. 《让你少奋斗10年的工作经验》引出的思考
  9. 网络与计算机加密解密驱动,嵌入RSA加密算法网络加密卡驱动程序的实现
  10. 【svn】svn报错refers to a file, not a directory和File out of date解决办法