作者:华仔徐

来源:https://zhuanlan.zhihu.com/p/28318502

文中代码较多,建议边敲边看

以下我按照代码来详细描述自己在编写爬虫代码时碰到的问题:

1.Python爬虫爬取短评代码:

# -*- coding:utf-8 -*-import randomimport time

from downloader import download as ddfrom parser import movieparser as psimport codecs

if __name__ == '__main__':templateurl = 'https://movie.douban.com/subject/26363254/comments?start={}&limit=20&sort=new_score&status=P';     with codecs.open('pjl_comment.txt', 'a', encoding='utf-8') as f:        # 4249for i in range(4249):                print ('开始爬取{}页评论...', i)targeturl = templateurl.format(i * 20)res = dd.download_page(targeturl)f.writelines(ps.get_douban_comments(res))time.sleep(1 + float(random.randint(1, 20)) / 20)
# -*- coding:utf-8 -*-from bs4 import BeautifulSoup

def get_douban_comments(res):comments_list = []  # 评论列表soup = BeautifulSoup(res)comment_nodes = soup.select('.comment > p')    for node in comment_nodes:comments_list.append(node.get_text().strip().replace("\n", "") + u'\n')    return comments_list
# -*- coding:utf-8 -*-

import requests

# 下载源代码def download_page(url):header={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:54.0) Gecko/20100101 Firefox/54.0',            'Cookie':'input your login cookie'}html=requests.get(url,headers=header).content    return html

提醒:爬取短评需要登录操作,可以注册一个小号作为爬虫的工具。

爬取完成后得到一个10M的文件夹:

2. 对电影评论分词,并绘制词云

# -*- coding:utf-8 -*-import codecsfrom os import path

import jiebafrom scipy.misc import imreadfrom wordcloud import WordCloud

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 save_jieba_result():# 设置多线程切割jieba.enable_parallel(4)dirs = path.join(path.dirname(__file__), '../pjl_comment.txt')     with codecs.open(dirs, encoding='utf-8') as f:comment_text = f.read()cut_text = " ".join(jieba.cut(comment_text))  # 将jieba分词得到的关键词用空格连接成为字符串with codecs.open('pjl_jieba.txt', 'a', encoding='utf-8') as f:f.write(cut_text)def draw_wordcloud2():

def draw_wordcloud2():dirs = path.join(path.dirname(__file__), 'pjl_jieba.txt')    with codecs.open(dirs, encoding='utf-8') as f:comment_text = f.read()color_mask = imread("/Users/huazi/Desktop/music.jpg")  # 读取背景图片stopwords = [u'就是', u'电影', u'你们', u'这么', u'不过', u'但是', u'什么', u'没有', u'这个', u'那个', u'大家', u'比较', u'看到', u'真是',                 u'除了', u'时候', u'已经', u'可以']cloud = WordCloud(font_path="/Users/huazi/Desktop/simsunttc/simsun.ttc", background_color='white',max_words=2000, max_font_size=200, min_font_size=4, mask=color_mask, stopwords=stopwords)word_cloud = cloud.generate(comment_text)  # 产生词云word_cloud.to_file("pjl_cloud.jpg")save_jieba_result()
draw_wordcloud2()

碰到的一些问题:

  1. 因为评论的数据较多,使用jieba分词工具时,时间消耗很大,提高速度的方法, 设置多线程切割: jieba.enable_parallel(4)

  2. WordCloud使用时,对stopwords使用中文,一直没有效果,通过修改源代码函数达到目标:

3.最后的结果

对豆瓣《战狼2》87767 条短评做词云相关推荐

  1. scrapy爬虫之抓取《芳华》短评及词云展示

    简介 在scrapy爬虫之<琅琊榜2>话题title收集及词云展示 及scrapy爬虫之模拟登录豆瓣l 两篇博文中,我们分别实现了直接爬取内容及模拟登陆豆瓣,现在我们将这两个功能整合到一起 ...

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

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

  3. Python爬取你好李焕英豆瓣短评生成词云

    爬取过程: 你好,李焕英 短评的URL: https://movie.douban.com/subject/34841067/comments?start=20&limit=20&st ...

  4. 爬取豆瓣《小丑》短评做词云图

    一.抓取小丑的豆瓣短评 网址:https://movie.douban.com/subject/27119724/reviews?start=20 首先构造url,短评页面每页可以抓取20个评论,假如 ...

  5. 爬取复仇者联盟4豆瓣短评生成词云

    Python在众多编程语言中有着很多强大的依赖库支持,能用很简短的代码完成很复杂的事情. 最近复仇者联盟4非常火爆,而且口碑炸裂.因此,作者运用Python对此电影做了一些简单的分析.分析的具体流程如 ...

  6. 【豆瓣电影】2019/11/21/Python搜索豆瓣电影(Top100)爬虫+D3.js词云(票房和豆瓣评分)实现

    [豆瓣电影爬虫]2019/11/21/Python豆瓣电影爬虫+D3.js WordCloud 1.目标 今天临时需要将100部票房最高的电影[from艺恩网:如图1],找到对应的豆瓣评分,制作D3词 ...

  7. 从《战狼2》到Oracle数据库,这中间有几个云的距离?

    截至8月8日, 一部国产大电影<战狼2> 上映13天赚取票房34亿元, 刷新了国内电影票房纪录. 除了剧情.演员的表演以外, 渲染技术也给电影增光不少. 这部电影的一部分渲染工作就是 由深 ...

  8. Python爬取唐人街探案3豆瓣短评并生成词云

    爬取唐人街探案3短评过程 要爬取的URL: https://movie.douban.com/subject/27619748/comments?start=20&limit=20&s ...

  9. Python 爬虫实战:分析豆瓣中最新电影的影评(词云显示)

    简介 刚接触python不久,做一个小项目来练练手.前几天看了<杀破狼·贪狼>,发现它在最新上映的电影里面是排行第一的,如下图所示.准备把豆瓣上对它的影评做一个分析. 目标总览 主要做了三 ...

最新文章

  1. 网站优化需要团队协作
  2. 卷积神经网络CNN入门【pytorch学习】
  3. 19.IDA-栈指针调节、设置函数特性
  4. registerModulePath
  5. 《非暴力沟通》听书心得
  6. 数据结构练习——双向链表
  7. 你能打动客户的C++理由,一定要先说服自己相信
  8. 全选文字的快捷键_如果我是一个快捷键,我希望是?为什么?
  9. 一个小例子搞懂redux的套路
  10. Git忽略项目中的指定的文件
  11. python抽取指定url页面的title_Python使用scrapy爬虫,爬取今日头条首页推荐新闻
  12. 最近在做支付宝支付,在本地测试一切正常,上传到服务器就遇到报错:
  13. 直接获取Program Files目录的API
  14. linux usb重定向window,基于Linux的USB设备重定向研究.pdf
  15. ArcGIS 10.7基础:三种栅格影像裁剪操作
  16. [Java练习] 学生查询系统
  17. 来自学长师兄们的应届校招经验
  18. Maven打包SpringBoot项目镜像并推送至私有Harbor仓库
  19. 游戏制作策划人员指南
  20. B860AV2.1刷机/救砖

热门文章

  1. BCELoss() RuntimeError: the derivative for ‘target‘ is not implemented
  2. 飞鸽快信微信消息-LINUX服务器告警、状态监控预警、程序报警提醒等消息实时推送工具
  3. 软件测试面试题:计算x的n次方,如:3的4次方 为3*3*3*3=81
  4. tomcat发布solr服务出现404
  5. 前端学习路线整理,如何点亮前端技术栈
  6. 你有“金矿”,开采吧
  7. 实验三 实现私聊群聊聊天室
  8. 线程池,Volatile,原子性类AtomicInteger,乐观锁悲观锁,并发工具类Hashtable,ConcurrentHashMap类,Semaphore类
  9. 真人发音计算机怎么谈音乐,能说会道 专业版
  10. matlab for判断语句,matlab使用笔记(一)——matlab语言中if、for语句与C语言中的差别...