数据可视化第十天(爬虫爬取某瓣星际穿越电影评论,并且用词云图找出关键词)

开头提醒

本次爬取的是用户评论,只供学习使用,不会进行数据的传播。希望大家合法利用爬虫。

获得数据

#总程序
import requests
from fake_useragent import UserAgent
import time

fu=UserAgent()

headers={
    'User-Agent':fu.random
}

page_list=range(0,10)
#爬取10页的数据;需要的时间会很久
for page in page_list:
	#这些参数最后是拼接到?后面构成URL的参数
    params={
    'start':20*page,
    'sort':'time'
    }
    url="https://movie.douban.com/subject/1889243/reviews"
    req=requests.get(url,params=params,headers=headers)
    time.sleep(3)
    html=etree.HTML(req.text)#将获得的数据变成HTML格式
    id_list=html.xpath('//div[@class="main review-item"]/@id')#xpath比较容易提取需要的数据,学习也简单
    comment_results=[]
    #评论是折叠的,通过点击超链接,我们会在一个新的连接
    #发现这个评论,读取这个里面的全部评论
    #观察一下url我们就知道如何去读取这个数据了
    for id in id_list:
        url='https://movie.douban.com/review/'+id+'/'
        id_req=requests.get(url,headers=headers)
        id_html=etree.HTML(id_req.text)
        id_comment_list=id_html.xpath('//div[@class="review-content clearfix"]/p/text()')
        comment_results.append(id_comment_list)
        time.sleep(3)
        
    for comment in comment_results:
        with open('/Users/oommnn/Desktop/学习笔记/爬虫项目/星际穿越电影评论.txt','a+',encoding='utf-8') as f:
            #print(str(comment))
            #获得的是list;转为str类型
            #但是有的评论有多个p,不能单纯的只取第一项
                for com in comment:
                    f.write(com)
            
    if req.status_code == 200:
        print(f"爬取第{page}页成功")

            
print("爬取结束")

可视化处理

注:一般形容词可以让我们了解人们对这部电影的评价

#可视化处理
import jieba.analyse
import wordcloud

with open('你的文件地址','r',encoding='utf-8') as f:
    data=f.read()
    
#a代表形容词
key_list=jieba.analyse.extract_tags(data,topK=100,allowPOS='a')
keys=' '.join(key_list)#合并到适合wordcloud处理的字符串
#collocations:是否找一些常见的词汇组合;这里不需要组合
#比如:我 草 这是一种常见的组合,但是这里不需要
wc=wordcloud.WordCloud(font_path='/System/Library/Fonts/Hiragino Sans GB.ttc',
                      width=800,height=600,collocations=False,max_words=50,background_color='black').generate(keys)
image=wc.to_image()
image.show()

在这里插入图片描述

  • 5
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 豆瓣电影是众所周知的一个知名电影评分网站,其中的TOP250电影榜单更是备受关注。爬取这个榜单的数据可以帮助我们更好地了解电影市场和评价,数据可视化方面可以更好地呈现这些数据。 首先,我们可以使用Python程序编写爬虫,抓取豆瓣电影TOP250的数据。我们可以通过分析网页源代码,选取需要的信息,例如电影名称、上映时间、豆瓣评分、评分人数、电影类型、导演、演员等信息。然后,将所有信息保存在CSV文件中。我们可以使用BeautifulSoup模块或Scrapy框架来实现爬虫程序的编写。 接下来,我们可以使用Python的数据可视化工具来对这些数据进行可视化处理。例如,我们可以使用matplotlib或Seaborn绘制电影评分的统计图表和线型图,了解每部电影评分的分布情况、评分人数的多寡、豆瓣评分的走向等。另外,我们也可以绘制散点图或热图,从电影类型、上映时间等角度分析不同类型电影的评分情况。我们还可以利用词云图工具呈现电影的标签云图,更直观地展示豆瓣用户对电影的评价。 总的来说,我们可以使用Python的爬虫数据可视化工具来爬取豆瓣电影TOP250榜单的数据,并且将数据以图表、统计、云图等形式进行可视化分析,从而更好地了解电影市场和评价。 ### 回答2: 豆瓣电影Top250是电影爱好者们都很熟悉的一个电影排行榜。为了更好地了解这个排行榜的情况,我们可以利用Python爬取豆瓣电影Top250上的电影信息,并将数据制作成可视化图表,以更直观地呈现数据。 首先,我们需要使用Python爬虫技术获取豆瓣电影Top250中每部电影信息。一般来说,爬取网页数据需要用到一些第三方爬虫库,比如Requests和BeautifulSoup。使用Requests库可以向豆瓣服务器发送请求,获取Top250的网页HTML文件。接着,我们可以使用BeautifulSoup库解析HTML文件,从中获取每一部电影的名称、评分、演员、导演、简介等信息爬取完毕后,将获取到的数据存储在MySQL或者MongoDB数据库中,方便后续对数据的处理和分析。 接下来,我们需要将获取到的数据进行数据可视化。我们可以使用Python中的Matplotlib或者Seaborn等数据可视化库来制作可视化图表。比如,我们可以生成柱状图、饼图、折线图等多种图表类型,展现Top250中电影各类别的数量分布、电影评分的分布情况、导演、演员等数据的贡献度等信息。 总之,通过Python爬取豆瓣电影Top250数据,并利用数据可视化技术制作图表,我们可以更好地了解电影市场的情况,从中找到一些有用的数据洞察点,对后续的电影市场分析等工作提供有力支持。 ### 回答3: 随着互联网的普及和数据挖掘的发展,数据可视化已经成为当今最流行的技术之一。而Python语言的出现,极大地促进了数据可视化技术的发展,并且能够使数据可视化更加高效、便捷。 Python爬取豆瓣电影Top250数据可以使用爬虫框架Scrapy,通过对网页的解析和内容抓取,将所需数据存入数据集中。数据集中存储了每个电影的名称、导演、主演、类型、上映时间、评价人数、评分等信息,这些数据可以通过Python的数据可视化工具如Matplotlib、Pandas等进行可视化处理。 通过数据可视化可以得到丰富的数据分析和呈现,如: 1.不同类型电影的数量 通过Python可视化工具可以得到不同类型电影的数量,并且可以使用饼图、柱状图等图表进行图像展示,帮助人们更好地了解豆瓣Top250电影中各类型的分布情况。 2.电影排名及评价情况 通过Python爬虫框架获取的豆瓣Top250电影可以进行排名展示及评价等数据的分析。可视化工具可以帮助我们通过散点图、折线图等形式直观地了解电影排名及评价情况。 3.电影时长对评分的影响 通过Python可视化工具可视化处理电影时长对评分的影响。可以得出电影时长对于电影评分存在明显影响的结论,以饼图的形式将主观评价高的电影电影时长进行对比。 Python爬取豆瓣电影Top250,通过数据可视化工具可以使我们直观地了解到豆瓣Top250电影的分类情况、排名和评价等数据信息,同时,也可以了解到电影时长等因素对电影评价的影响,这对我们对电影的分析与推荐可以起到积极的作用,有助于我们更好地了解电影行业的情况。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值