微信公眾平台開發 微信公眾平台開發者 微信公眾平台開發模式 空氣質量指數 PM2.5
作者:方倍工作室
原文:http://www.cnblogs.com/txw1958/archive/2013/05/30/weixin-if32-air-quality.html
一、獲取原版數據
在中國環境監測總站http://www.cnemc.cn/ 可以找到全國城市空氣質量實時發布平台,其地址為 http://113.108.142.147:20035/emcpublish/
該平台由中山大學智能交通研究中心承擔,下附新聞:
2013年1月1日開始,由中山大學智能交通研究中心承擔承擔研發的全國城市空氣質量實況發布平台在中國環境監測總站上線使用。該平台按照《環境空氣質量標准》(GB3095-2012)(簡稱“空氣質量新標准”)要求,實時發布京津冀、長三角、珠三角等重點區域及直轄市、省會城市等共74個城市、496個監測點位的二氧化硫(SO2)、二氧化氮(NO2)、可吸入顆粒物(PM10)、臭氧(O3)、一氧化碳(CO) 和細顆粒物(PM2.5)等6項基本項目的實時監測數據和AQI指數等信息。
新聞來源顯示:http://its.sysu.edu.cn/shownews.asp?id=167
下載開始看如何抓取這個網站的數據:
直接使用wireshark抓包
過濾條件:ip.dst_host matches "113.108.142.147" || ip.src_host matches "113.108.142.147"
得到的都是TCP的包?
打開一個包的內容看一下,其實是html/xml格式的soap包,
HTTP/1.1 200 OK Content-Length: 499 Content-Type: text/xml; charset=utf-8 Server: Microsoft-IIS/7.5 X-Powered-By: ASP.NET Date: Thu, 30 May 2013 04:52:19 GMT <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><GetCityNameByPIDResponse xmlns="http://tempuri.org/"><GetCityNameByPIDResult xmlns:a="http://schemas.datacontract.org/2004/07/EnvCriteria.Model" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><a:CityInfo><a:CityCode>110100</a:CityCode><a:CityJC>BJS</a:CityJC><a:CityName></a:CityName><a:ID>1</a:ID><a:ProvinceId>1</a:ProvinceId></a:CityInfo></GetCityNameByPIDResult></GetCityNameByPIDResponse></s:Body></s:Envelope>
看來是SOAP沒有被識別,在WireShark上把20035端口加進來,進入
Edit -> Preferences -> Protocols -> HTTP -> TCP Ports
將20035添加進來
這時,可以看到識別成html/xml協議了
同時可以找到這個WebService接口
官方接口地址為:
http://113.108.142.147:20035/EnvPubServiceSSL/EnvAQIServeice.svc
一切似乎很順利,勝利在望。
再來打開看一下soap包的內容
拿出來分析一下:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"> <s:Body> <GetAllHistoryByNameAndTime0320Response xmlns="http://tempuri.org/"> <GetAllHistoryByNameAndTime0320Result>T/eoSkC02T908BICNUxbXN6bZIWdBhoF45S5uNRQBDFc1RdekG4UNYP9Y1HAr9ZvbVYf0YYIp6Cmr6aHQmgpELOnK7hWUe0K5vDoKEb/BRPSrKEcM7zC7qc6lD5qiPrlIBeH4Dw20pt1aBj9c0t7CYRwforg3E4882URyEOS+zMo0oEewUB7Vza/zT3iWRJ9TsU3CSBCCW0wur6AySyw4O2TgoSb+0CMbtRaC+MPeKBFUtSeGY6JRKljcT+LkSmZqT2XEsJhLfbM1Pidxbh7416VgAI/6n/HwLxjaMBc2k+Sy3IljoVoZfJP9prSbtUqkWJ1eRRqSlIjCgvuonx0hcqDHkQvBIcB/3ifTwI7YB2xs26IDLEjkXvSuMBB3PZnjLMQDMn4Gp1TAcUZLImCv8huYdnqfGzmHf8Khm3MCXnrhCZUoX8tO9H+KEg/8bHOO7gMGXGV+yP8WMHvazZVLRO+OXK0rG4jlYnC0RluUNpC/mOketcu3jPlFS4dQ7qPnn8iN03pF+aeVLVrvmyU5m0IbuTf23VaxEy4/wCtW4WW5Im8kiojWs9Ocm+eYg7WQAn0PjHGMF8tPUBNYHSW/m7tm3H7jXqFXGDTdYHEvW0u1XjGSyHMXaLyrqqEI9v+sBoQ89Vzl+M1d/VnhaxFyPiGzW22Jddqg9EQ5YD+pFI= </GetAllHistoryByNameAndTime0320Result> </GetAllHistoryByNameAndTime0320Response> </s:Body> </s:Envelope>
這個GetAllHistoryByNameAndTime0320Result 這個值如何解密??
數據無法解密,不再研究下去了,有興趣研究的可以看 http://www.newsmth.net/nForum/#!article/WebDev/24420
二、使用第三方接口
PM25.in是廣州BestApp工作室開發的一個空氣質量數據監測產品。收錄了全國74個城市,近500個監測點的實時數據(毎小時更新)。數據源於國家環保局和各地環保機構的公開數據。開發團隊將所有采集的數據進行統一處理,然后再通過API的方式提供出去。接口地址:http://pm25.in/api_doc
數據格式說明:
PM25.in網站提供的空氣質量指數實時數據來源於國家環境保護部,API返回的數據包括了以下內容:
字段 | 字段說明 |
---|---|
aqi | 空氣質量指數(AQI),即air quality index,是定量描述空氣質量狀況的無綱量指數 |
area | 城市名稱 |
position_name | 監測點名稱 |
station_code | 監測點編碼 |
so2 | 二氧化硫1小時平均 |
so2_24h | 二氧化硫24小時滑動平均 |
no2 | 二氧化氮1小時平均 |
no2_24h | 二氧化氮24小時滑動平均 |
pm10 | 顆粒物(粒徑小於等於10μm)1小時平均 |
pm10_24h | 顆粒物(粒徑小於等於10μm)24小時滑動平均 |
co | 一氧化碳1小時平均 |
co_24h | 一氧化碳24小時滑動平均 |
o3 | 臭氧1小時平均 |
o3_24h | 臭氧24小時滑動平均 |
o3_8h | 臭氧8小時滑動平均 |
o3_8h_24h | 臭氧8小時滑動平均的24小時均值 |
pm2_5 | 顆粒物(粒徑小於等於2.5μm)1小時平均 |
pm2_5_24h | 顆粒物(粒徑小於等於2.5μm)24小時滑動平均 |
primary_pollutant | 首要污染物 |
quality | 空氣質量指數類別,有“優、良、輕度污染、中度污染、重度污染、嚴重污染”6類 |
time_point | 數據發布的時間 |
使用接口
1.12、獲取所有城市的空氣質量詳細數據
地址 | http://www.pm25.in/api/querys/all_cities.json |
方法 | GET |
參數 | * 無 |
返回 | 一個數組,里面包含目前支持的77個城市所有監測點的詳細信息,一共507項,其中每項的信息有 |
最好的方法是每小時同步這個接口一次,把數據存入本地數據庫,再進行分析。
三、效果演示
香港空氣污染指數 HongKong Air Pollution Index
============================================
方倍工作室微信公眾平台賬號關注方法:
1. 微信通訊錄-添加朋友-查找公眾號-搜索“方倍工作室”
2. 微信通訊錄-添加朋友-搜號碼-輸入“pondbaystudio”
3. 使用微信掃描下面的二維碼