# -*- coding:utf-8 -*-
'''
抓取豆瓣电影某部电影的评论
这里以《我不是潘金莲为例》
网址链接:https://movie.douban.com/subject/26630781/comments
为了抓取全部评论需要先进行登录
'''
from selenium import webdriver
import time
import codecs
import jieba
import jieba.analyse as analyse
from wordcloud import WordCloud
from scipy.misc import imread
from os import pathdef get_douban_comments(url):comments_list = []  # 评论列表login_url = 'https://accounts.douban.com/login?source=movie'user_name = 'aaa'  # 这里替换成你的豆瓣用户名password = 'aaa'  # 这里替换成你的密码driver = webdriver.Firefox()  # 启动Firefox()driver.get(login_url)driver.find_element_by_id('email').clear()  # 清除输入框driver.find_element_by_id('email').send_keys(user_name)  # 输入用户名driver.find_element_by_id('password').clear()driver.find_element_by_id('password').send_keys(password)  # 输入密码captcha_field = raw_input('请打开浏览器输入验证码:')  # 手动填入验证码driver.find_element_by_id('captcha_field').send_keys(captcha_field)driver.find_element_by_class_name('btn-submit').click()  # 点击登录按钮time.sleep(5)  # 等待跳转到登录之后的页面driver.get(url)  # 定位到目标页面driver.implicitly_wait(3)  # 智能等待3秒n = 1  # 页数count = 0  # 评论数目i = 50while True:try:results = driver.find_elements_by_class_name('comment')for result in results:# author = result.find_elements_by_tag_name('a')[1].text # 作者# vote = result.find_element_by_class_name('comment-vote').find_element_by_tag_name('span').text # 赞同数目# time0 = result.find_element_by_class_name('comment-info').find_elements_by_tag_name('span')[1].text # 时间comment = result.find_element_by_tag_name('p').text  # 评论内容comments_list.append(comment + u'\n')print u"查找到第%d个评论" % countcount += 1driver.find_element_by_class_name('next').click()  # 点击下一页print u'第%d页查找完毕!' % nn += 1time.sleep(4)i -= 1print iif(i == 0):breakexcept Exception, e:print ebreakwith codecs.open('pjl_comment.txt', 'a', encoding='utf-8') as f:f.writelines(comments_list)print u"查找到第%d页,第%d个评论!" % (n, count)# 得到所有关键词
def get_all_keywords(file_name):word_lists = []  # 关键词列表with codecs.open(file_name, 'r', encoding='utf-8') as f:Lists = f.readlines()  # 文本列表for List in Lists:cut_list = list(jieba.cut(List))for word in cut_list:word_lists.append(word)word_lists_set = set(word_lists)  # 去除重复元素sort_count = []word_lists_set = list(word_lists_set)length = len(word_lists_set)print u"共有%d个关键词" % lengthk = 1for w in word_lists_set:sort_count.append(w + u':' + unicode(word_lists.count(w)) + u"次\n")print u"%d---" % k + w + u":" + unicode(word_lists.count(w)) + u"次"k += 1with codecs.open('count_word.txt', 'w', encoding='utf-8') as f:f.writelines(sort_count)def get_top_keywords(file_name):top_word_lists = []  # 关键词列表with codecs.open(file_name, 'r', encoding='utf-8') as f:texts = f.read()  # 读取整个文件作为一个字符串Result = analyse.textrank(texts, topK=20, withWeight=True, withFlag=True)n = 1for result in Result:print u"%d:" % n,for C in result[0]:  # result[0] 包含关键词和词性print C, u"  ",print u"权重:" + unicode(result[1])  # 关键词权重n += 1
# 绘制词云
def draw_wordcloud():with codecs.open('pjl_comment.txt', encoding='utf-8') as f:comment_text = f.read()cut_text = " ".join(jieba.cut(comment_text))  # 将jieba分词得到的关键词用空格连接成为字符串d = path.dirname(__file__)  # 当前文件文件夹所在目录color_mask = imread("alice_color.png")  # 读取背景图片cloud = WordCloud(font_path=path.join(d, 'simsun.ttc'), background_color='white',mask=color_mask, max_words=2000, max_font_size=40)word_cloud = cloud.generate(cut_text)  # 产生词云word_cloud.to_file("pjl_cloud.jpg")if __name__ == '__main__':# url = 'https://movie.douban.com/subject/26630781/comments?start=10581&limit=20&sort=new_score'# get_douban_comments(url)# file_name = 'pjl_comment.txt'# get_top_keywords(file_name)draw_wordcloud()

[转载]Python爬取豆瓣影评并生成词云图代码相关推荐

  1. python爬取豆瓣影评生成词云的课程设计报告_Python爬取豆瓣影评,生成词云图,只要简单一步即可实现。...

    最近看了一部电影<绣春刀>,里面的剧情感觉还不错,本文爬取的是绣春刀电影的豆瓣影评,1000个用户的短评,共5W多字.用jieba分词,对词语的出现频率进行统计,再通过wordcloud生 ...

  2. csv文件操作和爬虫抓取豆瓣影评并生成词云图

    1. csv文件操作 csv文件windows默认是excel打开的,是一种表格式文件 import csv #导入csv的库 # 一次写入多行文本时,会多换一行,可以设置newline=" ...

  3. python 爬虫生成csv文件和图_csv文件操作和爬虫抓取豆瓣影评并生成词云图

    import requests from bs4 import BeautifulSoup import csv # 自定义一个抓取每页影评的方法 def getCommentByPage(url): ...

  4. 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)

    爬虫入门:python爬取豆瓣影评及影片信息:影片评分.评论时间.用户ID.评论内容 思路分析 元素定位 完整代码 豆瓣网作为比较官方的电影评价网站,有很多对新上映影片的评价,不多说,直接进入正题. ...

  5. 详解使用Python爬取豆瓣短评并绘制词云

    使用Python爬取豆瓣短评并绘制词云 成果如下(比较丑,凑合看) 1.分析网页 打开想要爬取的电影,比如<找到你>,其短评如下: 查看源代码 发现短评存放在<span>标签里 ...

  6. python爬取豆瓣影评理论依据_我用Python爬取了豆瓣的影评

    使用Python爬取豆瓣的影评,比爬取网易云简单,因为不需要设置特定的headers,关于网易云说几句,很难爬取,对请求头有着严格的要求,前几年那会还好些. 爬取结果分为:用户名,评价的星级,评论的内 ...

  7. python电影评论的情感分析流浪地球_《流浪地球》影评分析(一):使用Python爬取豆瓣影评...

    本文爬虫的步骤: 使用Selenium库的webdriver进行网页元素定位和信息获取: 使用BeautifulSoup库进行数据的提取: 使用Pandas库进行数据的存储. 后台回复python爬虫 ...

  8. python爬取豆瓣影评_【python爬虫实战】爬取豆瓣影评数据

    概述: 爬取豆瓣影评数据步骤: 1.获取网页请求 2.解析获取的网页 3.提速数据 4.保存文件 源代码: # 1.导入需要的库 import urllib.request from bs4 impo ...

  9. python爬取豆瓣影评生成词云的课程设计报告_简单爬取《小丑》电影豆瓣短评生成词云...

    导语 在前段时间看了杰昆菲尼克斯的小丑电影,心里很好奇大部分观众看完这部电影之后对此有什么评价,然后看了看豆瓣短评之后,觉得通过python把短评中出现最多的单词提取出来,做成一张词云,看看这部电影给 ...

最新文章

  1. 【运筹学】线性规划数学模型 ( 知识点回顾 | 可行解 | 最优解 | 阶梯型矩阵 | 阶梯型矩阵向量 | 基 | 基向量 | 基变量 | 非基变量 )
  2. 解析 this.initialize.apply(this, arguments)
  3. js中this的指向问题
  4. python中的series的结构_pandas 数据结构之Series的使用方法
  5. ggspatial | ggplot2的地图制作拓展包(1):如何添加指北针和比例尺
  6. php用redis保存session
  7. 2007年考研数学一解析pdf
  8. project2019安装教程
  9. html2pdf使用总结
  10. python大鱼吃小鱼程序代码_pygame大鱼吃小鱼源代码
  11. android 全景拼接软件,DetuStitch(全景拼接软件)
  12. Unity3D中使用Leap Motion进行手势控制
  13. 互联网公司,产品和测试的那些人和事
  14. 无外接屏幕使用树莓派
  15. 【我的OpenGL学习进阶之旅】C++如何加载TGA文件?
  16. 【深度学习入门:基于Python的理论与实现】书本学习笔记 第三章 神经网络
  17. tailgate and piggyback
  18. rtux64w10.sys导致DRIVER_IRQL_NOT_LESS_OR_EQUAL蓝屏的解决方法
  19. 百度、阿里和腾讯的大数据发展路线和区别
  20. 牛客网Java后端开发面经汇总

热门文章

  1. jpa 每次启动都要创建外键索引_索引(五)索引数据结构
  2. Python 列表、字典、元组的一些小技巧
  3. MPB:利用无菌植物和可培养细菌体系研究根系微生物组功能
  4. 面对这些情况,要勇于说“不​”
  5. Microbiome:南土所褚海燕组揭示长期施肥抑制根际微生物固氮的作用机制
  6. GigaScience:ASaiM基于Galaxy微生物组分析框架
  7. R语言使用fs包的path_wd函数基于自定义文件路径规则,批量生成多个文件或者文件夹对应的绝对(absolute)文件路径(constructs absolute path)
  8. R语言基于日期范围筛选数据实战(Subset by a Date Range):日期范围之内的数据、日期范围之外的数据、日期之后的数据、日期之前的数据
  9. R语言PCA主成分分析(Principle Component Analysis)与线性回归结合实战
  10. 李迅雷+但斌+趋势的力量+对话PPT