Skip to content

Capture the real time AQIs (PM2.5, PM10, etc) through API interface rather than web crawler. 通过API接口(而不是爬虫)获取实时AQI气象数据(PM2.5,PM10等),并将该脚本部署到远程Linux服务器上自动获取数据。

Notifications You must be signed in to change notification settings

ZhangRaymond/Capture-AQIs-Data

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Automatically Capture AQIs Data by Python

Capture the real time AQIs (PM2.5, PM10, etc) through API interface rather than web crawler.
The script is deployed to the remote Linux server to automatically retrieve data.

用python自动获取AQIs数据

通过API接口(而不是爬虫)获取实时AQI气象数据(PM2.5,PM10等),并将该脚本部署到远程Linux服务器上自动获取数据。

数据源:pm25.in

该网站每小时更新一次气象数据,指标包括AQI、空气质量、主要污染物、pm2.5、pm10、CO、O3、SO2等。
API文档详见 http://pm25.in/api_doc

声明:本项目提供的数据所有权权归原始方所有,在未获得所有方任何形式认可的情况下,请勿将本数据用作商业目的。本程序提供的数据仅用作参考,不做任何形式的承诺、担保以及负责。

文件介绍

|—— CaptureAQIs.py                      // 核心脚本
|—— AQI.sh                              // 部署在linux上的shell脚本

|—— backup.sh                           // 定期备份数据的shell脚本
|—— backup.log                          // 备份日志

|—— AQIsData文件夹                       // 数据保存在该文件夹下
    |—— 2018-03.pickle                  // 历史数据
    |—— update.pickle                   // 本次更新的数据
    |—— 2018-03.log                     // 日志文件
    
|—— AQI-Demo文件夹                      //  获取AQI数据的几个数据源及对应demo
    |—— Get_AQI_from_aqicn.py
    |—— Get_AQI_from_pm2.5in.py
    |—— GetPmData_Shanghai.py

CaptureAQIs.py

核心代码。
用pm25.in官方提供的API获取AQI数据。抓取到的数据保存在pickle文件(以便下一步处理),执行日志保存在[year]-[month].log。

AQI.sh          

部署在linux上,执行一次CaptureAQIs.py。

2018-03.pickle

获取的AQI数据保存在pickle文件中,以便下一步处理。为防止pickle文件越来越庞大,运行时过分耗费内存,遂将数据按月存放

update.pickle

本次更新的数据,主要用于下次更新时判断该时段数据是否已更新过

2018-03.log

程序执行时的日志文件。
通过查看该日志数据抓取状况以及程序运行状况。

使用

  1. 赋予AQI.sh执行权限。指令: $ chmod 755 AQI.sh
  2. 在Linux服务器上部署crontab服务来定时执行AQI.sh。 命令行输入:
crontab -e

进入编辑定时文件的界面,键入:  

# 每小时的12分和51分时刻各执行一次AQI.sh(抓取一次数据),确保不漏掉官网每小时更新的数据
12,51 * * * * * AQI.sh路径 

eg:

12,51 * * * * * /home/Raymond/AQI.sh  

对于crontab命令的使用,这里不做介绍,请自行学习。


Raymond Zhang
2018.3.1

About

Capture the real time AQIs (PM2.5, PM10, etc) through API interface rather than web crawler. 通过API接口(而不是爬虫)获取实时AQI气象数据(PM2.5,PM10等),并将该脚本部署到远程Linux服务器上自动获取数据。

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published