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

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

1、分析URL

2、爬取前10页评论

3、进行词云展示

1、分析URL

我不是药神 短评

第一页url

https://movie.douban.com/subject/26752088/comments?start=0&limit=20&sort=new_score&status=P

第二页url

https://movie.douban.com/subject/26752088/comments?start=20&limit=20&sort=new_score&status=P

第十页url

https://movie.douban.com/subject/26752088/comments?start=180&limit=20&sort=new_score&status=P

分析发现每次变化的只是…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,headers=headers)

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‘, encoding=‘utf-8‘)

for page in range(10): #爬取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‘)

★★问题出现:

(1)当IDLE Python3.5运行时出现下面问题:

运行结果的文件“我不是药神page10.txt”是空白的

(2)在cmd下运行出现:

运行结果的文件“我不是药神page10.txt”是只有一小部分

★★★★完美解决办法:

修改控制台编码:

命令行输入  chcp

输出显示:活动代码页: 936

表示当前的编码是默认的gbk

修改编码:

命令行输入  chcp 65001

表示转换成utf8

字体选择Lucida Console

然后可以成功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_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(‘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()

结果:

原文地址:https://www.cnblogs.com/huangrenhui/p/10231079.html

时间: 2025-01-12 06:10:58

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

利用Python爬取豆瓣电影

目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com/tag/#/?sort=T&range=0,10&tags=%E7%94%B5%E5%BD%B1,%E7%88%B1%E6%83%85,%E7%BE%8E%E5%9B%BD,%E9%BB%91%E5%B8%AE 有3个字段是非常重要的: 1.sort=T 2.range=0,10 3.tag

用requests和etree爬取豆瓣电影评论

写在前面的话 :上一篇文章我们用requests和lxml.etree爬取了豆瓣电影Top250的电影信息,为了能对requests和lxml.etree有更深的理解,下面我们将继续用他们来爬取豆瓣电影的短评 温馨提示 :博主使用的系统为win10,使用的python版本为3.6.5 一.网页分析 首先我们使用chrome浏览器打开某一部电影的评论(这里示例为最近很火的<一出好戏>),我们首先可以判断该网站是一个静态网页,和之前一样我们可以通过构造URL来获取全部网页的内容,但是这次我们尝试使

团队-Python 爬取豆瓣电影top250-需求分析

需求:爬取豆瓣电影TOP250 *向用户展示电影的排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息 实现思路: 分析豆瓣电影TOP250的url规则, 编写模块获取相关url 获取全部相关页面的html代码 分析html中有关"排名,分数,名字,简介,导演,演员,前10条影评信息,链接信息"的标签 结合第三方工具包实现信息的提取 编写将"搜集信息"展示出来的模块

python爬取豆瓣电影首页超链接

什么是爬虫?  我们可以把互联网比作一张大网,而爬虫(即网络爬虫)便是在网上爬行的蜘蛛.把网的节点比作一个个网页,爬虫爬到这就相当于访问了该页面,获取了其信息.可以把节点间的连线比作网页与网页之间的链接关系,这样蜘蛛通过一个节点后,可以顺着节点连线继续爬行到达下一个节点,即通过一个网页继续获取后续的网页,这样整个网的节点便可以被蜘蛛全部爬行到,网站的数据就可以被抓取下来了. 代码: 1 from urllib import request 2 from collections import de

python 爬取 豆瓣电影top250 存储到mysql

数据分析师 想在本地找一些开源bi做一些数据可视化的呈现 先在网上扒拉点数据,存储到了本地 主要是学习学习python的爬虫 先在本地建了mysql的表 (比较粗暴) CREATE TABLE `doubanmovie` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` text COMMENT '电影名称', `director` text COMMENT '导演', `actor` text COMMENT '演员', `style` text C

运维学python之爬虫高级篇(五)scrapy爬取豆瓣电影TOP250

对于scrapy我们前面已经介绍了简单的应用,今天我们用一个完整的例子,爬取豆瓣电影TOP250来做一个小的练习,把scrapy阶段做一个总结. 1 环境配置 语言:Python 3.6.1 IDE: Pycharm 浏览器:firefox 爬虫框架:Scrapy 1.5.0 操作系统:Windows 10 家庭中文版 2 爬取前分析 2.1 需要保存的数据 首先确定我们要获取的内容,在items中定义字段,来将非结构化数据生成结构化数据,获取的内容主要包括:排名.电影名称.得分.评论人数.如下

Python开发简单爬虫之静态网页抓取篇:爬取“豆瓣电影 Top 250”电影数据

目标:爬取豆瓣电影TOP250的所有电影名称,网址为:https://movie.douban.com/top250 1)确定目标网站的请求头: 打开目标网站,在网页空白处点击鼠标右键,选择"检查".(小编使用的是谷歌浏览器). 点击"network",在弹出页面若长时间没有数据显示,则试一下F5刷新. 可以得到目标网页中Host和User-Agent两项. 2)找到爬取目标数据(即电影名称)在页面中的位置 右键"检查",选择"Elem

Python爬虫入门 | 爬取豆瓣电影信息

这是一个适用于小白的Python爬虫免费教学课程,只有7节,让零基础的你初步了解爬虫,跟着课程内容能自己爬取资源.看着文章,打开电脑动手实践,平均45分钟就能学完一节,如果你愿意,今天内你就可以迈入爬虫的大门啦~好啦,正式开始我们的第二节课<爬取豆瓣电影信息>吧!啦啦哩啦啦,都看黑板~1. 爬虫原理1.1 爬虫基本原理听了那么多的爬虫,到底什么是爬虫?爬虫又是如何工作的呢?我们先从"爬虫原理"说起.爬虫又称为网页蜘蛛,是一种程序或脚本.但重点在于:它能够按照一定的规则,自动

《团队-爬取豆瓣电影TOP250-成员简介及分工》

团队项目<爬取豆瓣电影TOP250>开发人员之一:张晓亮,性别男,15级软件技术专业学生,喜欢爱书和浏览网页信息.掌握的知识:Java语言开发,熟悉Python,C等开发语言.了解HTML5,CSS3,Javasprict等前端开发知识.可以熟练使用eclipse,Sequel Pro等软件开发工具. 在本次开发中担任:系统分析.对系统功能需求分析.用户体验设计进行归拢.对系统进度的控制,风险评估进有把控和人员的配置等