import requests
from bs4 import BeautifulSoup
from pandas import read_csv
from IPython.display import display
import pandas as pd# 这段代码是为了在pycharm的控制台中显示全部,不需要的可以不加
# 设置控制台输出结果的可显示长度
pd.set_option('display.max_columns', 1000)
pd.set_option('display.width', 1000)
pd.set_option('display.max_colwidth', 1000)
# 设置控制台输出结果的对齐
pd.set_option('display.unicode.ambiguous_as_wide', True)
pd.set_option('display.unicode.east_asian_width', True)# 爬虫 天气信息&空气质量数据 http://www.tianqihoubao.com/
def AQI_data(city, *years):m = ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12']  # 月份urls = []for year in range(years[0], years[-1] + 1):for m1 in m:ur = 'http://www.tianqihoubao.com/aqi/%s-%d'%(city,year) + m1 + '.html'urls.append(ur)  # 循环得出所有爬取网址file = open('AQI_data.csv', 'w', encoding='UTF-8')  # 设置编码方式 进行写操作header = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36'}  # 设置用户代理for url in urls:response = requests.get(url, headers = header)  # 配置信息soup = BeautifulSoup(response.text, 'html.parser')  # 获取网页代码weather_list = soup.select('div[class="api_month_list"]')  # 选择特定divfor weather in weather_list:weather_date = weather.select('table[class="b"]')  # 选择div中特定tableul_list = weather.select('tr')  # 选择table中所有trfor ul in ul_list:  # 循环每次得到一个trli_list = ul.select('td')  # 选择tr中所有tdstr = ""for li in li_list:  # 循环每次得到一个tdl = li.string  # list转换stringprint(l)if (l == None):str = str + '无数据' + ','  # 空值用‘无数据’填充else:str = str + l.strip() + ','  # 清除数据中的空格if (str != ' '):file.write(str + '\n')  # 写数据+换行file.close()# 爬虫def运行,城市和时间可以自由改变
AQI_data('dalian',2017,2020)# 导入数据
aqi = read_csv('AQI_data.csv', encoding='UTF-8', header=None)
display(aqi.head(n=5))  # 显示前5行# 数据清洗
del aqi[8]  # 删除多余列
del aqi[9]
del aqi[10]
aqi.columns = ['日期', '质量等级', 'AQI指数', 'AQI排名', 'PM2.5', 'PM10', 'So2', 'No2']  # 设置列索引
aqi = aqi[~aqi['日期'].isin(['无数据'])]  # 选取aqi中日期列不包含'无数据'的行
aqi = aqi.drop_duplicates()  # 删除重复值
aqi = aqi.astype({'AQI指数':'int', 'AQI排名':'int', 'PM2.5':'int', 'PM10':'int', 'So2':'int', 'No2':'int'})  # 将需要的列从str类型转换为int类型
display(aqi.head(n=5))  # 显示前5行

Python爬虫——天气信息空气质量数据相关推荐

  1. python 爬取城市空气质量数据

    [python]爬虫爬取中国城市的空气质量数据 使用工具:pycharm/python3.7,Chrome driver 使用库:selenium,time 一.下载Chrome driver(必读) ...

  2. python爬虫各个城市空气质量检测

    """" 作者:小锋 功能描述:网络爬虫 版本号:2.0 """ 根据小象学习案例做的小测试,只是将结果打印在控制台,还没有转字符 ...

  3. python抓取微博数据中心_空气质量数据网页爬虫加数据处理

    Python这门语言因其简单强大已经火了很久了,但我接触的比较晚,前几个月因为一篇博客开始初步了解这门语言,并且之后模仿某位北邮的前辈的微博写了一个新浪微博的爬虫 这里给出链接:python编写的新浪 ...

  4. 空气质量数据网页爬虫加数据处理

    Python这门语言因其简单强大已经火了很久了,但我接触的比较晚,前几个月因为一篇博客开始初步了解这门语言,并且之后模仿某位北邮的前辈的微博写了一个新浪微博的爬虫 这里给出链接:python编写的新浪 ...

  5. python爬虫天气数据_python爬虫:天气数据的分析

    就在前几天还是二十多度的舒适温度,今天一下子就变成了个位数,小编已经感受到冬天寒风的无情了.之前对获取天气都是数据上的搜集,做成了一个数据表后,对温度变化的感知并不直观.那么,我们能不能用python ...

  6. 爬空气质量MySQL_爬虫:利用selenium采集某某环境网站的空气质量数据

    前言:在上一篇文章中,我们介绍了在http://PM2.5.in这个网站采集空气质量的数据,本篇文章是对其产生的一些问题的另一种解决方案,提供更加权威的数据采集. 技术框架:selenium.json ...

  7. python爬取某城市各监测站点历史空气质量数据

    python爬取某城市各监测站点历史空气质量数据 引言 正文 一.安装Web driver 二.安装selenium 三.数据爬取 引言 由于要使用某地各监测站点的空气质量数据做数据预测,因此需要去网 ...

  8. 利用pyecharts库对京津冀上广深空气质量数据进行可视化

    本文以当前热门编程语言Python作为开发工具,利用Python的BeautifulSoup库进行网页爬虫以获取空气质量数据(AQI.PM2.5),然后综合运用第三方库Pandas进行数据处理,最后利 ...

  9. python爬网页数据用什么_初学者如何用“python爬虫”技术抓取网页数据?

    原标题:初学者如何用"python爬虫"技术抓取网页数据? 在当今社会,互联网上充斥着许多有用的数据.我们只需要耐心观察并添加一些技术手段即可获得大量有价值的数据.而这里的&quo ...

最新文章

  1. linux桌面版排行2019_2019 年适合新手的 Linux 发行版 top 5
  2. ai入门视频,亲测有效
  3. 《Python Cookbook 3rd》笔记(4.16):迭代器代替 while 无限循环
  4. DDA算法--计算机图形学
  5. 遗传算法--旅行商问题(TSP问题)-Matlab
  6. node项目报错had too many unstable restarts (16). Stopped. “errored”
  7. 【C++】C++继承和派生类、虚基类
  8. 安全攻防之BadUsb攻击之CS上线
  9. 555定时器的工作原理
  10. 湖南计算机应用技术专科学校排名,湖南所有职业技术学院排名
  11. 基于树莓派的流星雨监测系统(RMS)的搭建
  12. 4.2 CUDA Reduction 一步一步优化
  13. linux GPT分区工具
  14. 带宽储备能力超100 Tbps,华为云CDN保障平台从容应对流量高峰
  15. CSS中的nth-child和nth-of-type选择器
  16. C语言写一个函数,输入一行字符,将此字符串中最长的单词输出
  17. describe函数的参数举例详解
  18. 基于Java技术的大型网站架构设计方案
  19. HTML5期末大作业:花店购物网站设计——花店购物网站源码(27页) 学生动花店购物页设计模板下载 植物大学生HTML网页制作作品 简单网页设计成品 dreamweaver学生网站模板
  20. WINDOWS命令行查看内存、CPU

热门文章

  1. SpringBoot整和MinIO以及MinIO工具类
  2. 医生投书媒体曝光医院黑幕 “制度导致乱收费”
  3. yolov5——基于yolov5的钢材表面缺陷识别
  4. java面试题13--获取任意一年的二月有多少天
  5. 多伦多大学计算机科学课程,加拿大多伦多大学各学院本科课程设置
  6. Python 自动控制原理 control
  7. 〖教程〗NbtScan 139端口弱口令/Netbios密码爆破
  8. mysql逻辑模型_(理论)数据库建模三步骤:概念模型-逻辑模型-物理模型
  9. 城市公交查询系统的设计与实现(Java+Web+MySQL+J2EE)
  10. 如何下载letv内容