爬虫+Flask+Echarts搭建《深度学习》书评显示大屏

本文展示了如何结合Python爬虫从豆瓣获取《深度学习》的书评,使用BeautifulSoup处理数据,通过TextBlob进行情感分析,再利用Flask和Echarts将结果以饼图和柱状图的形式进行可视化展示,从而分析读者的情感倾向。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在当今信息时代,数据的价值越来越受到重视。而如何将数据进行可视化展示,已经成为了许多企业和个人的必备技能之一。本文将介绍如何使用Python爬虫、Flask框架和Echarts图表库搭建一个《深度学习》书评显示大屏。

一、爬取数据

首先,我们需要从豆瓣网上爬取《深度学习》这本书的书评数据。我们可以使用Python中的requests和BeautifulSoup库来实现。

代码如下:

import requests
from bs4 import BeautifulSoup

url = 'https://book.douban.com/subject/27087503/comments/'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.text, 'html.parser')

comments = []
for comment in soup.find_all('span', 'short'):
    comments.append(comment.string)

上述代码中,我们首先指定了要爬取的网址以及请求头部信息。然后,使用requests库发送请求,并使用BeautifulSoup库解析网页内容。最后,我们遍历网页中所有书评内容,并将其添加到一个列表中。

二、数据预处理

由于爬取到的书评数据中可能存在一些无意义的字符,比如空格、换行符等,因此我们需要对数据进行预处理。在本文中,我们将使用正则表达式来去除这些无意义的字符。

代码如下:

import re

pattern = re.compile('\s+')
for i in range(len(comments)):
    comments[i] = re.sub(pattern, '', comments[i])

上述代码中,我们首先使用re库编译了一个正则表达式模式,用于匹配所有的空格、制表符和换行符。然后,我们使用循环遍历书评列表中的每一个元素,并使用re.sub()函数将匹配到的字符替换为空字符串。

三、情感分析

在进行可视化展示之前,我们需要对书评数据进行情感分析,以便更好地了解读者对这本书的评价。在本文中,我们将使用TextBlob库来进行情感分析。

代码如下:

from textblob import TextBlob

positive = 0
negative = 0
neutral = 0

for comment in comments:
    blob = TextBlob(comment)
    polarity = blob.sentiment.polarity
    if polarity > 0:
        positive += 1
    elif polarity < 0:
        negative += 1
    else:
        neutral += 1

total = positive + negative + neutral
positive_percent = round(positive / total * 100, 2)
negative_percent = round(negative / total * 100, 2)
neutral_percent = round(neutral / total * 100, 2)

上述代码中,我们首先定义了三个变量,分别用于存储积极、消极和中性情感的评论数量。然后,我们使用TextBlob库对每一个书评进行情感分析,并根据情感极性将其归类为积极、消极或中性评论。最后,我们计算出每一种情感评论所占的比例。

四、可视化展示

在完成数据预处理和情感分析之后,我们可以使用Echarts图表库来将结果进行可视化展示。在本文中,我们将绘制一个饼图和一个柱状图来展示读者对《深度学习》这本书的评价情况。

代码如下:

from flask import Flask, render_template
from pyecharts import options as opts
from pyecharts.charts import Bar, Pie

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/pie')
def pie_chart():
    c = (
        Pie()
        .add('', [['积极', positive_percent], ['消极', negative_percent], ['中性', neutral_percent]])
        .set_colors(['#FF3333', '#33FF33', '#FFFF33'])
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {d}%"))
        .set_global_opts(title_opts=opts.TitleOpts(title='《深度学习》书评情感分析'))
    )
    return c.render_embed()

@app.route('/bar')
def bar_chart():
    c = (
        Bar()
        .add_xaxis(['积极', '消极', '中性'])
        .add_yaxis('数量', [positive, negative, neutral])
        .set_colors(['#FF3333', '#33FF33', '#FFFF33'])
        .set_series_opts(label_opts=opts.LabelOpts(formatter="{c}"))
        .set_global_opts(title_opts=opts.TitleOpts(title='《深度学习》书评情感分析'))
    )
    return c.render_embed()

if __name__ == '__main__':
    app.run(debug=True)

上述代码中,我们首先导入了Flask框架和Echarts图表库。然后,定义了三个路由函数,分别用于渲染主页、饼图页面和柱状图页面。在饼图页面和柱状图页面中,我们使用Pie()和Bar()函数创建了一个饼图和一个柱状图,并设置了相应的参数。最后,我们使用render_embed()函数将图表嵌入到HTML模板中,并启动了Flask应用程序。

五、总结

本文介绍了如何使用Python爬虫、Flask框架和Echarts图表库搭建一个《深度学习》书评显示大屏。通过对书评数据进行预处理和情感分析,并将结果可视化展示出来,我们可以更好地了解读者对这本书的评价情况。希望本文能够对您有所帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

韩淼燃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值