python爬取豆瓣电影评论_python 爬取豆瓣电影评论,并进行词云展示

本文旨在提供爬取豆瓣电影《我不是药神》评论和词云展示的代码样例

1、分析URL

2、爬取前10页评论

3、进行词云展示

1、分析URL

我不是药神 短评

第一页url

第二页url

第十页url

分析发现每次变化的只是…strat=后面的数字,其他内容不变,可以以此遍历每一页的评论。

2、爬取前10页评论

import urllib.request

from bs4 import BeautifulSoup

'''

遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!

'''

def getHtml(url):

"""获取url页面"""

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'}

req = urllib.request.Request(url,headers=headers)

req = urllib.request.urlopen(req)

content = req.read().decode('utf-8')

return content

def getComment(url):

"""解析HTML页面"""

html = getHtml(url)

soupComment = BeautifulSoup(html, 'html.parser')

comments = soupComment.findAll('span', 'short')

onePageComments = []

for comment in comments:

# print(comment.getText()+'\n')

onePageComments.append(comment.getText()+'\n')

return onePageComments

if __name__ == '__main__':

f = open('我不是药神page10.txt', 'w', encoding='utf-8')

for page in range(10): # 豆瓣爬取多页评论需要验证。

url = 'https://movie.douban.com/subject/26752088/comments?start=' + str(20*page) + '&limit=20&sort=new_score&status=P'

print('第%s页的评论:' % (page+1))

print(url + '\n')

for i in getComment(url):

f.write(i)

print(i)

print('\n')

————————————————

版权声明:本文为CSDN博主「三个石头2016」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qiang12qiang12/article/details/81082675

特别的,爬取更多评论需要模拟登陆。

3、进行词云展示

import matplotlib.pyplot as plt

from wordcloud import WordCloud

from scipy.misc import imread

import jieba

text = open("我不是药神page10.txt","rb").read()

#结巴分词

wordlist = jieba.cut(text,cut_all=True)

wl = " ".join(wordlist)

#print(wl)#输出分词之后的txt

#把分词后的txt写入文本文件

#fenciTxt = open("fenciHou.txt","w+")

#fenciTxt.writelines(wl)

#fenciTxt.close()

#设置词云

wc = WordCloud(background_color = "white", #设置背景颜色

mask = imread('shen.jpg'), #设置背景图片

max_words = 2000, #设置最大显示的字数

stopwords = ["的", "这种", "这样", "还是", "就是", "这个"], #设置停用词

font_path = "C:\Windows\Fonts\simkai.ttf", # 设置为楷体 常规

#设置中文字体,使得词云可以显示(词云默认字体是“DroidSansMono.ttf字体库”,不支持中文)

max_font_size = 60, #设置字体最大值

random_state = 30, #设置有多少种随机生成状态,即有多少种配色方案

)

myword = wc.generate(wl)#生成词云

wc.to_file('result.jpg')

#展示词云图

plt.imshow(myword)

plt.axis("off")

plt.show()

词云图如下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值