基于大数据爬虫的全国空气质量指数实时数据可视化

from lxml import etree
import urllib
import urllib.request
import xlwt
import pandas as pd
from pyecharts import Geo
import matplotlib.pyplot as plt
import matplotlib as mpl

def getpage(url):
    req = urllib.request.Request(url)
    req.add_header('User-Agent', "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36")     #添加自己的用户代理
    data = urllib.request.urlopen(req).read().decode("gbk")
    return data

def getdata(data):
    AQI = []
    start = 0
    html = etree.HTML(data)
    infor = html.xpath('//li[@id!="tr-fixed"]//text()')   #利用xpath解析路径
    while True:
        if start < len(infor):
            AQI.append(infor[start:start+5])
            start = start + 5
        else:
            break
    return AQI

#写入excel表格
def writeExcel(AQI):
    f = xlwt.Workbook()
    sheet1 = f.add_sheet('The AQI', cell_overwrite_ok=True)
    rowTitle = ['order', 'city', 'province', 'AQI', 'quality']
    for i in range(len(rowTitle)):
        sheet1.write(0, i, rowTitle[i])
    for j in range(len(AQI)):
        for k in range(len(AQI[j])):
            sheet1.write(j+1, k, AQI[j][k])
    f.save("E:\\python\\aqi.xls")

if __name__ == "__main__":
    url = "http://tianqi.2345.com/air-rank.htm"
    data = getpage(url)
    AQI = getdata(data)
    writeExcel(AQI)
    city = []; value = []
    fbook = pd.DataFrame(pd.read_excel("E:\\python\\aqi.xls", 0))
    for each in fbook['city']:
        city.append(str(each))
    for each in fbook['AQI']:
        value.append(each)
    for order, quality in zip(fbook['order'], fbook['quality']):
        if quality == "中度污染":
            index = order-1
            break
    geo = Geo("全国空气质量指数", "Data from AQI", title_color="#fff", width=1000, height=600, \
              background_color='#404a59')
    geo.add("空气质量指数", city, value, visual_range=[1, 60], maptype='china', type='effectScatter', \
            visual_text_color="#fff", effect_scale=5, symbol_size=15, is_visualmap=True, is_random=True, is_roam=False)
    geo.render(path="全国空气质量指数.html")
    fig = plt.figure()
    font = {"size": 15}
    plt.rcParams['xtick.direction'] = 'in'
    plt.rcParams['ytick.direction'] = 'in'
    ax = fig.add_subplot(111)
    ax.spines['bottom'].set_linewidth(2)  #设置底部坐标轴的粗细
    ax.spines['left'].set_linewidth(2)    #设置左边坐标轴的粗细
    ax.spines['right'].set_linewidth(2)   #设置右边坐标轴的粗细
    ax.spines['top'].set_linewidth(2)     #设置上部坐标轴的粗细
    rects = ax.bar(range(len(city)-index), value[index:], width=0.08, tick_label=city[index:], color='m')
    plt.tick_params(labelsize=15)
    for rect in rects:
        height = rect.get_height();
        ax.text(rect.get_width()/2.0+rect.get_x()-0.04,height,height)
    plt.xlabel('城市', font)
    plt.ylabel('空气质量指数', font)
    plt.title("中度污染、重度污染、严重污染城市", font)
    mpl.rcParams["font.sans-serif"] = ["KaiTi"]
    mpl.rcParams["axes.unicode_minus"] = False
    plt.show()

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
爬取到的大数据如下所示:
在这里插入图片描述

  • 9
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
基于Python爬虫的豆瓣电影影评数据可视化分析可以通过以下步骤进行: 1. 爬取豆瓣电影影评数据:使用Python中的网络爬虫库(如Requests、BeautifulSoup等)发送HTTP请求,获取豆瓣电影网页的HTML代码,并解析网页内容提取需要的影评数据。可以通过爬取多个电影的影评数据,获取更全面的数据样本。 2. 数据清洗与整理:对爬取到的影评内容进行数据清洗,去除无效的字符、标点符号等,并进行文本预处理,如去除停用词(如“的”,“是”等),分词等,以便进行后续的数据分析。 3. 词频统计:对清洗整理后的影评数据,使用Python中的分词库(如jieba)进行分词,然后统计每个词出现的频率。可以使用词云等可视化工具直观地展示高频词汇。 4. 情感分析:通过自然语言处理技术,对影评文本进行情感分析,判断正面、负面或中性情感。可以使用Python中的情感分析库(如TextBlob、NLTK等),将情感分析结果进行可视化展示,比如制作情感词汇分布图。 5. 主题分析:使用主题模型技术,对清洗整理后的影评数据进行主题分析。可以使用Python中的主题模型库(如LDA、Gensim等),将数据分成若干个主题并进行可视化展示,帮助理解电影影评中的主题内容。 6. 时间分析:将爬取到的影评数据按时间顺序进行排序和分组,然后可以使用Python中的时间序列分析库(如Matplotlib、Seaborn等)绘制影评数量随时间变化的折线图,从而分析电影受欢迎程度的变化趋势。 通过以上步骤,可以实现基于Python爬虫的豆瓣电影影评数据的可视化分析,为电影从业者、观众以及影评撰写者等提供电影评价、观众喜好、市场趋势等方面的参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值