简述
本节抓取中国环境监测总站发布的全国重点城市 / 区域空气质量预报数据
目标对象
实现逻辑
数据对象分析
分析系统中主题功能及对应数据,主要使用数据为城市预报数据、重点区域数据-
数据来源分析
- 数据表设计
# 城市预报数据
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))
入库数据效果
总结
首次遇到数据动态存储在Javascript
中,尝试使用soup.find
获取脚本失败,后使用正则获取