资讯详情

python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法

📅 2026/10/21 10:26:57 | 华诺云谱 👁 阅读
python 爬取豆瓣电影评论,并进行词云展示及出现的问题解决办法
更多内容请关注https://www.cnblogs.com/huangrenhui/源码仓库Gitee · GitHub本文旨在提供爬取豆瓣电影《我不是药神》评论和词云展示的代码样例1、分析URL2、爬取前10页评论3、进行词云展示1、分析URL我不是药神 短评第一页urlhttps://movie.douban.com/subject/26752088/comments?start0limit20sortnew_scorestatusP第二页urlhttps://movie.douban.com/subject/26752088/comments?start20limit20sortnew_scorestatusP………第十页urlhttps://movie.douban.com/subject/26752088/comments?start180limit20sortnew_scorestatusP分析发现每次变化的只是…strat后面的数字其他内容不变可以以此遍历每一页的评论。2、爬取前10页评论代码import urllib.request from bs4 import BeautifulSoup 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,headersheaders) req urllib.request.urlopen(req) content req.read().decode(utf-8) return content def getComment(url): 解析HTML页面 #html getHtml(url) response urllib.request.urlopen(url) html response.read() html html.decode(utf-8,ignore) 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, encodingutf-8) for page in range(10): #爬取10页的评论 url https://movie.douban.com/subject/26752088/comments?start str(20*page) limit20sortnew_scorestatusP print(第%s页的评论: % (page1)) print(url \n) for i in getComment(url): f.write(i) print(i) print(\n)★★问题出现1当IDLE Python3.5运行时出现下面问题运行结果的文件“我不是药神page10.txt”是空白的2在cmd下运行出现运行结果的文件“我不是药神page10.txt”是只有一小部分★★★★完美解决办法修改控制台编码命令行输入 chcp 输出显示活动代码页 936 表示当前的编码是默认的gbk 修改编码 命令行输入 chcp 65001 表示转换成utf8 然后在cmd运行python a.py(文件名就可以成功print爬取的中文文章★★★★★★★★常见编码utf8 所有语言 gbk 简体中文 gb2312 简体中文 gb18030 简体中文 big5 繁体中文 big5hkscs 繁体中文3、进行词云展示代码import matplotlib.pyplot as plt from wordcloud import WordCloud from scipy.misc import imread import jieba text open(我不是药神page20.txt,rb).read() #结巴分词 wordlist jieba.cut(text,cut_allTrue) wl .join(wordlist) #print(wl)#输出分词之后的txt #把分词后的txt写入文本文件 fenciTxt open(fenciHou.txt,w) fenciTxt.writelines(wl) fenciTxt.close() #设置词云 wc WordCloud(background_color white, #设置背景颜色 mask imread(hai.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年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑