10_全国空气质量预报信息发布

简述

本节抓取中国环境监测总站发布的全国重点城市 / 区域空气质量预报数据

目标对象

全国空气质量预报信息发布数据

10_全国空气质量预报信息发布_第1张图片
全国空气质量预报信息发布数据

实现逻辑

  • 数据对象分析
    分析系统中主题功能及对应数据,主要使用数据为城市预报数据、重点区域数据

  • 数据来源分析


    10_全国空气质量预报信息发布_第2张图片
    城市预报数据可能动态输出至 JS 中,需页面解析获取
重点区域数据可直接通过Json服务获取
  • 数据表设计
# 城市预报数据
PublicTime  CityCode    Name    Longitude   Latitude    AirIndex_From   AirIndex_To PrimaryPollutant    Air48Index_From Air48Index_To   Primary48Pollutant  IsPublish_72Hour    Air72Index_From Air72Index_To   Primary72Pollutant  DetailInfo
# 重点区域数据
PublishDate ProvinceCode    ProvinceName    ForecastDescription OtherDescription    HealthTips  WarningInfo

实现代码

引用包
import requests #数据抓取
from bs4 import BeautifulSoup #抓取内容解析
import re #正则
import time, os 
import datetime
from MSSql_SqlHelp import MSSQL 
import json #Json解析
正则匹配城市预测数据
    # 城市空气质量数据
    webPage = download_page(url_city)
    soup = BeautifulSoup(webPage,"html.parser")
    PublicTime = soup.find('span', attrs={'class':'pull-right update-time'}).getText()
    # 城市空气数据发布时间
    #print(PublicTime)
    pattern = "\[\[\{.+\}\]\]"  
    value = re.findall(pattern,str(soup))  
    jsonCity = json.loads(value[0])

注:除正则抓取数据外,还使用soup.find获取发布时间

Json解析区域预测数据
    # 省域空气质量形势预报
    webPage = download_page(url_province)
    soup = BeautifulSoup(webPage,"html.parser")
    jsonProvince = json.loads(str(soup))
入库数据效果
10_全国空气质量预报信息发布_第3张图片
城市预测数据
10_全国空气质量预报信息发布_第4张图片
省域预测数据

总结

首次遇到数据动态存储在Javascript中,尝试使用soup.find获取脚本失败,后使用正则获取

源码

spider_106.37.208.228.py
MSSql_SqlHelp.py

你可能感兴趣的:(10_全国空气质量预报信息发布)