首页 > 编程语言 > 详细

Python爬取《冰雪奇缘2》豆瓣影评

时间:2019-11-25 16:48:38      阅读:131      评论:0      收藏:0      [点我收藏+]

前言

文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。

作者: 刘铨@CCIS Lab

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

http://note.youdao.com/noteshare?id=3054cce4add8a909e784ad934f956cef

一、分析URL

1、分析豆瓣影评URL

首先在豆瓣中,找到我们想要爬取的电影《冰雪奇缘2》

技术分享图片

2、查看影片评论

技术分享图片

二、爬取评论

分析网页源码

技术分享图片

分析源码,可以看到评论在<span class="short">这个标签中,即代码为:

 1 import urllib.request
 2 from bs4 import BeautifulSoup
 3 ?
 4 def getHtml(url):
 5     """获取url页面"""
 6     headers = {User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36}
 7     req = urllib.request.Request(url,headers=headers)
 8     req = urllib.request.urlopen(req)
 9     content = req.read().decode(utf-8)
10     return content
11 ?
12 def getComment(url):
13     """解析HTML页面"""
14     html = getHtml(url)
15     soupComment = BeautifulSoup(html, html.parser)
16     comments = soupComment.findAll(span, short)
17     onePageComments = []
18     for comment in comments:
19         onePageComments.append(comment.getText()+\n)
20     return onePageComments
21 ?
22 if __name__ == __main__:
23     f = open(冰雪奇缘2.txt, w, encoding=utf-8)
24     for page in range(10):  # 豆瓣爬取多页评论需要验证。
25         url = https://movie.douban.com/subject/25887288/comments?start= + str(20*page) + &limit=20&sort=new_score&status=P
26         print(第%s页的评论: % (page+1))
27         print(url + \n)
28         for i in getComment(url):
29             f.write(i)
30             print(i)
31         print(\n)

 

这里要注意的是,未登录用户只能查看前十页的评论,爬取更多评论需要先模拟登录。

三、进行词云展示

数据抓取下来之后,我们就来使用词云分析一下这部电影:

1、使用结巴分词

因为我们下载的影评是一段一段的文字,而我们做的词云是统计单词出现的次数,所以需要先分词。

1 import matplotlib.pyplot as plt
2 from wordcloud import WordCloud
3 from scipy.misc import imread
4 import jieba
5 ?
6 text = open("冰雪奇缘2.txt","rb").read()
7 #结巴分词
8 wordlist = jieba.cut(text,cut_all=False)
9 wl = " ".join(wordlist)

 

2、使用词云分析

 1 #设置词云
 2 wc = WordCloud(background_color = "white", #设置背景颜色
 3                mask = imread(black_mask.png),  #设置背景图片
 4                max_words = 2000, #设置最大显示的字数
 5                stopwords = ["", "这种", "这样", "还是","就是", "这个", "没有" , "一个" , "什么", "电影", "一部","第一部", "第二部"], #设置停用词
 6                font_path = "C:\Windows\Fonts\simkai.ttf",  # 设置为楷体 常规
 7         #设置中文字体,使得词云可以显示(词云默认字体是“DroidSansMono.ttf字体库”,不支持中文)
 8                max_font_size = 60,  #设置字体最大值
 9                random_state = 30, #设置有多少种随机生成状态,即有多少种配色方案
10     )
11 myword = wc.generate(wl)#生成词云
12 wc.to_file(result.png)
13 ?
14 #展示词云图
15 plt.imshow(myword)
16 plt.axis("off")
17 plt.show()

 

技术分享图片 最终结果: 技术分享图片 .

Python爬取《冰雪奇缘2》豆瓣影评

原文:https://www.cnblogs.com/Qqun821460695/p/11928342.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!