任务1:数据采集

网页“http://pm25.in/beijing”中包含北京12个监测点的空气质量监测数据,请编写程序抓取网页(网页样本保存在源素材文件夹下src1目录中)上的监测点、AQI、空气质量指数类别,如表H2-1-1所示。将抓取的数据保存,以bj20200721.csv文件命名。
表H2-1-1 北京空气质量监测数据
监测点 AQI 空气质量指数类别
万寿西宫 57 良
…… …… ……
1)使用Pycharm在考生文件夹下创建项目task030101,在项目下创建python文件,命名为task1.py。将源素材文件夹下的src1目录复制到项目task030101下。
2)根据实际项目需求进行问题分析,书写注释。
3)编写程序,正确爬取网页中的数据,运行程序并显示“已爬取”。
4)编写程序,将抓取的数据保存在项目task030101下,以bj20200721.csv文件命名,分隔符为tab键,运行程序并显示“已保存”。
5)将运行结果截图,保存在考生文件夹下,以task1.jpg文件命名。
**

答案:

import bs4
from bs4 import BeautifulSoup
from urllib import request
import pandas
## 解析网页内容
# ulist:保存解析后的网页内容,  html:传入的网页内容
def jiexi(ulist,html):soup = BeautifulSoup(html, 'html.parser') ##创建BeautifulSoup对象,并指定BeautifulSoup中TreeBuilder的解析器为html.parserfor tr in soup.find('tbody').children: ## 循环标签tbody下的所有tr标签,一个迭代对象if isinstance(tr,bs4.element.Tag): ## 判断是否bs4.element.Tag类型tds = tr('td')  ## 得到这一行中的数据ulist.append([tds[0].string,tds[1].string,tds[2].string]) ## 添加到三个## 分析数据,等到二维表格
def tofile(ulist):data = pandas.DataFrame(ulist)  ##数据框架,制作二维表data.columns =['监测点','AQI','空气质量指数类别']  ## 设置列名data.to_csv('./bj20200721.csv',header=True,sep='\t',index=False)  ## 写入csv
## 主函数
def main():uinfo=[]url='http://pm25.in/beijing' ##得到网页地址html = request.urlopen(url).read().decode('utf-8') ##打开网页,并读取网页,设置编码格式jiexi(uinfo,html) ## 调用jiexi函数print("已爬取")tofile(uinfo)   ##调用tofile函数print('已保存')
#     主接口
if __name__ == '__main__':main()

任务2:数据处理和分析

**
使用Python的pandas读取bj20200721.csv文件(bj20200721.csv文件保存在源素材文件夹下task030102\src2目录中),完成数据处理和分析。
1)将源素材文件夹下task030102项目复制到考生文件夹下,使用Pycharm打开项目task030102,打开task2.py。
2)根据实际项目需求进行问题分析,书写注释。
3)编写程序,完成readFile(filename)函数的定义,使用pandas读取bj20200721.csv文件中的数据,返回值类型为DataFrame。
4)编写程序,完成printInfo(filename)函数定义,显示bj20200721.csv文件中的内容,如图H2-1-1所示。

图H2-1-1显示bj20200721.csv文件中的内容
5)编写程序,完成insertDate(filename)函数的定义,将2020-07-21日期数据作为新的一列添加到Excel文件中,列名称为“监测日期”,保存在项目task030102下,文件命名为bj20200721.xlsx。
6)编写程序,完成aqi(filename)函数的定义,显示空气质量指数类别为优的记录。
7)编写程序,导入模块,调用自定义的readFile、printInfo、insertDate、aqi函数,实现上述功能,注意参数的正确设置。
8)将运行结果截图,保存在考生文件夹下,以task2.jpg文件命名。

答案:

import pandas  ## pandas 提供了大连能使我们快速便捷的处理数据的函数和方法# 读取数据
def readFile(filename):file = pandas.read_csv(filename, sep='\t', encoding='utf-8') ##读取csv文件return file# 显示内容
def printInfo(filename):file = readFile(filename)  ## 读取数据print(file)# 插入数据
def insertDate(filename):file = readFile(filename)file['监测日期'] = pandas.to_datetime('2021-09-10') ##插入列file.to_excel('./bj20200721.xlsx') ## 写入excel格式文件中# 筛选数据
def aqi(filename):file = readFile(filename)print(file.loc[file['空气质量指数类别'] == '优'])  ## 筛选空气质量指数类别为优的数据if __name__ == '__main__':filename = './bj20200721.csv'readFile(filename)printInfo(filename)print('----------------------------------------')insertDate(filename)print('插入时间成功')print('-----------------------------------')aqi(filename)

任务3:数据可视化

使用Python读取bj20200721.csv文件(bj20200721.csv文件保存在源素材文件夹下src3目录中)中的数据,使用matplotlib绘制直方图,显示aqi最少的4个监测点。
1)使用Pycharm在考生文件夹下创建项目task030103,在项目下创建python文件,命名为task3.py。将源素材文件夹下的src3目录复制到项目task030103下。
2)根据实际项目需求进行问题分析,书写注释。
3)编写程序,使用pandas读取bj20200721.csv文件中的数据。使用matplotlib绘制直方图,显示AQI最少的4个监测点,如图H2-1-2所示。生成的文件保存在项目task030103下,文件命名为aqi.png。
答案:

import pandas as pd
import matplotlib.pyplot as plt
# 设置格式显示中文,显示正负号
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = 'False'
# 读取文件
data = pd.read_csv('./src3/bj20200721.csv', sep='\t', encoding='utf-8')
# 设置画布大小,清晰度
plt.figure(figsize=(8, 7), dpi=100)
# 设置标题
plt.title('20200721北京AQI最少的4个监测点')
# 给读取的文件按值排序  by:排序类别   ascending:是否升序  选取前4个
file = data.sort_values(by='AQI', ascending=True)[:4]
print(file)
# 绘制直方图,设置横纵坐标,宽度
plt.bar(file['监测点'], file['AQI'], width=0.8)
plt.xlabel('监测点')  # 添加x轴名称
plt.ylabel('AQI')    # 添加y轴名称
plt.savefig('./api.png')  # 图形保存到本地
plt.show()

python爬虫可视化题目北京空气质量监测数据获取与分析相关推荐

  1. 使用 Cloud Insight SDK 监控北京空气质量!

    现在越来越多的 App 都开始有广告了.特别是空气质量监测,和天气类的 App,广告还是蛮多的,眼花缭乱,真是够了. 最近刚好在用一款系统监控工具 Cloud Insight,它提供的 SDK 可以把 ...

  2. 基于 Python 的全国空气质量监测与可视化分析平台

    温馨提示:文末有 CSDN 平台官方提供的学长 Wechat / QQ 名片 :) 1. 项目背景 空气质量优劣程度与一个城市的综合竞争力密切相关,它直接影响到投资环境和居民健康,因此越来越受到政府和 ...

  3. 【JS逆向系列】某空气质量监测平台无限 debugger 与 python算法还原

    [JS逆向系列]某空气质量监测平台无限 debugger 与 python算法还原 1.前置阅读 2.过反调试 3.js分析 4.代码逻辑改写 1.前置阅读 样品地址:aHR0cHM6Ly93d3cu ...

  4. 二十八、接了一单Python北京空气质量数据处理

    @Author :Runsen 这是接的一单Python数据分析的,文件我删了,不好意思 文章目录 北京空气质量数据处理 分析解决方法 代码 计算北京每年的PM2.5情况 计算北京每年1-12月的PM ...

  5. 【JS 逆向百例】某空气质量监测平台无限 debugger 以及数据动态加密分析

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 写在前面 绕过无限 debugger 方法一 方法二 方法三 抓包分析 加密入口 动态 JS 本地改写 ...

  6. python空气质量分析与预测_干货!如何用 Python+KNN 算法实现城市空气质量分析与预测?...

    原标题:干货!如何用 Python+KNN 算法实现城市空气质量分析与预测? 作者 | 李秋键 责编 | 伍杏玲 封图 | CSDN 付费下载自东方 IC 出品 | CSDN(ID:CSDNnews) ...

  7. 【JS 逆向百例】某空气质量监测平台无限 debugger 以及数据动态加密

    关注微信公众号:K哥爬虫,持续分享爬虫进阶.JS/安卓逆向等技术干货! 文章目录 声明 逆向目标 写在前面 绕过无限 debugger 方法一 方法二 方法三 抓包分析 加密入口 动态 JS 本地改写 ...

  8. 基于Python的2013-2018全国城市空气质量分析

    基于Python的2013-2018全国城市空气质量分析 项目摘要 本项目使用pandas/numpy工具包对557424条空气质量数据进行导入及清洗,并使用matplotlib/seaborn/py ...

  9. PySpark学习案例——北京空气质量分析

    下方有数据可免费下载 目录 原始数据 环境 各个组件所遇到的问题 各种webUI端口 Python代码 azkaban调度 kibana可视化 原始数据 下载数据: 请点击我.提取码:736f 或者登 ...

最新文章

  1. 格式化代码会发生什么?? | 每日趣闻
  2. s:property 获取 ValueStack中的值
  3. ine.strip().split()
  4. apache apollo php,php windows環境 安裝 Apache-apollo + phpMQTT 實現發送 MQTT
  5. Linux配置Nginx与PHP-FPM出现[error] 80143#0: *1 connect() failed (111: Connection refused) while connectin
  6. rds基于什么开发_IaaS、PaaS、SaaS、DaaS都是什么?现在怎么样了?终于有人讲明白了...
  7. C++多线程快速入门(五)简单线程池设计
  8. ubuntu 11.10 因为gcc版本过高引起的错误,安装 gcc 4.4(转)
  9. 有一个7升的杯子和一个4升的杯子,如何盛出5升水?
  10. 四六级阅读难点--选词填空题的一般解题思路
  11. 天使轮、A轮、B轮、C轮、D轮融资 究竟是什么?
  12. 成像系统光照度(相机成像辐射传输)
  13. python中forward的作用_Pytorch学习笔记07----nn.Module类与前向传播函数forward的理解
  14. 数据库SQL实战 --47.将所有获取奖金的员工当前的薪水增加10%
  15. JS:offsetParent屬性
  16. 打造一个实用的Ubuntu
  17. 单摆周期控制装置(I题)(组委会自命题)
  18. PDF或图片文档内容识别、关系抽取
  19. 新手在SSD+HDD上安装win10、Ubuntu 16.04双系统
  20. Ubuntu 12.04 QQ2012

热门文章

  1. 爬虫实战:英雄联盟手游能“干掉”王者荣耀?微博4.3亿网友吵翻了……
  2. redis-----07-----redigo基本命令操作(主要讲如何让go的struct、map展开成redis的参数,以及使用struct获取redis返回的key-value批量数组)
  3. 第二层、三层、四层交换机原理
  4. IAR下载: Failed to get cpu status after 4 retrie 的解决方法
  5. 如何解决CC2640用IAR下载固件出现Fatal error: Failed to load the CPU core driver Session aborted的问题
  6. PS技巧分享,不容错过
  7. 学云计算比较好的几个论坛
  8. 【规范】万字集大成的HDLFPGA学习和规范
  9. 美国航空发动机发展经验,给中国的启示!
  10. U盘html文件恢复不了,u盘文件突然不见了怎么恢复?恢复小技巧来了