欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何

程序员文章站 2022-06-28 21:40:08
一、前言近期热播电影《八佰》,‘1937年淞沪会战的最后一役,“八百壮士”奉命坚守上海四行仓库,以少敌多顽强抵抗四天四夜。电影《八佰》由管虎导演,是亚洲首部全片使用IMAX摄影机拍摄的商业电影,将于2020年8月21日全国影院上映。’,豆瓣影评7.7分,今天我们用爬虫的方式,将豆瓣影评中的每位评价的星级爬取下来,最后再用cutecharts数据可视化,来看看这部电影是否值得观看。二、分析网站豆瓣影评部分,可以说是最基础的爬虫了,无任何反爬手段,我们需要的数据都在源代码之中,这里我通过xpath语法直接...

一、前言

近期热播电影《八佰》,‘1937年淞沪会战的最后一役,“八百壮士”奉命坚守上海四行仓库,以少敌多顽强抵抗四天四夜。电影《八佰》由管虎导演,是亚洲首部全片使用IMAX摄影机拍摄的商业电影,将于2020年8月21日全国影院上映。’,豆瓣影评7.7分,今天我们用爬虫的方式,将豆瓣影评中的每位评价的星级爬取下来,最后再用cutecharts数据可视化,来看看这部电影是否值得观看。

二、分析网站

豆瓣影评部分,可以说是最基础的爬虫了,无任何反爬手段,我们需要的数据都在源代码之中,这里我通过xpath语法直接筛选出我们需要的数据内容:也就是下图的星级评分。豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何

三、cutecharts介绍

cutecharts是一个很可爱的 Python 手绘风格可视化神包,和 Matplotlib 、pyecharts 等常见的图表不同,使用这个包可以生成下面这种看起来像手绘的各种图表(如下图),在一些场景下使用效果可能会更好。豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何
cutecharts 的项目结构与 pyecharts 基本保持一致,拥有 pyecharts 的所有核心功能。但是整体更加小巧,代码更加精简。因此,本文选择cutecharts来进行数据的可视化。

三、编写代码

首先,需要我们的目标站点的网址和请求头,没有请求头获取不到数据。

 def __init__(self):
        self.headers = {
            'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36'
        }
        self.url = 'https://movie.douban.com/subject/26754233/reviews?rating=&start={}'

我这边爬取了一百页的星级评分,用for 循环的方式,生成需要爬取的网址。

    def main(self):
        for i in range(0,100):
            url = self.url.format(int(20*i))
            self.get_comment(url)

接下来,就是通过对网页的请求,并且用xpath进行解析,获取我们需要的数据。

  def get_comment(self,url):
        response = requests.get(url,headers=self.headers)
        time.sleep(random.random())
        res = response.text
        html = etree.HTML(res)
        lists  = html.xpath('//div[@class="review-list  "]//div[@class="main review-item"]')
        for list in lists:
            level = list.xpath('.//header[@class="main-hd"]/span[@class]/@title')
            if level:
                level = level[0]
            else:
                level = '无评分'
            dict = {
                '评分':level
            }
            print(dict)

因为有一部分人是没有给出星级评分的,所以这边会用“无评分”来填充没有评价的部分。之后将这些数据保存到本地(如下图),一共有两千条数据。豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何
到这边,爬虫的任务,我们已经做完了,还是很简单的嘛,下面就用cutecharts将数据可视化出来。
豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何
这边我就直接上代码了,只展示绘制饼状图的方法,如果有感兴趣的小伙伴,可以自行去找资料。

from cutecharts.charts import Pie


def pie_base() -> Pie:
    chart = Pie("Pie-基本示例")

    chart.set_options(labels=['推荐','力荐','无评分','还行','较差','很差'])
    chart.add_series(list(data['评分'].value_counts()))
    return chart


pie_base().render()

效果图如下

豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何

是不是很可爱?

从这张图里我们可以看出来,大部分人还是比较推荐去看这部电影的,综合豆瓣7.7的影评,可以知道这部电影还是值得我们去观看的。
豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何

四、总结

本文通过爬取豆瓣的影评星级,然后用一种可爱的数据可视化包,将结果通过可视化的方式呈现给大家,可以作为cutecharts和爬虫的简单案例给大家作为参考。

大家如果觉得文章写得还可以,点个赞再走吧,如果有想看的关于爬虫方面的案例,都可以私信或评论,可能下一篇文章就是你们想看到的,希望你们有所收获,一起进步。豆瓣影评爬虫:cutecharts数据可视化看看大家对八佰的评价如何

本文地址:https://blog.csdn.net/shadowtalon/article/details/108267572