我爬取豆瓣10万短评,告诉你《复仇者联盟4》在讲什么?

栏目: 编程工具 · 发布时间: 6年前

内容简介:昨晚,焚香、沐浴、更衣!怀着朝圣般的心情。就像灭霸一样!去看了妇联4的终局之战。不得不说,票价有点小贵,整体效果还算可以,就是剧情有点懵逼。中间眯了几下(时长真的有点长),本来想玩玩手机,环顾四周看大家都这么认真的样子,默默的收了起来,请原谅我这小白。截止目前,《妇联4》已上映2天,今晚累计票房突破 10 亿应该是妥妥的,豆瓣评分 9.0 分。

我爬取豆瓣10万短评,告诉你《复仇者联盟4》在讲什么?

前言

昨晚,焚香、沐浴、更衣!怀着朝圣般的心情。就像灭霸一样!去看了妇联4的终局之战。不得不说,票价有点小贵,整体效果还算可以,就是剧情有点懵逼。中间眯了几下(时长真的有点长),本来想玩玩手机,环顾四周看大家都这么认真的样子,默默的收了起来,请原谅我这小白。

截止目前,《妇联4》已上映2天,今晚累计票房突破 10 亿应该是妥妥的,豆瓣评分 9.0 分。

爬取

主要是想知道这爆米花电影(其实,环顾四周没有一个人吃爆米花)大家都有什么评价,这里主要是爬取《妇联4》的好、中、差短评并分词分析。

爬取数据:

__author__ = "小柒"
__blog__ = "https://blog.52itstyle.vip/"
import os
# 导入requests库
import requests
# 导入文件操作库
import codecs
from bs4 import BeautifulSoup


# 给请求指定一个请求头来模拟chrome浏览器
global headers
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36',
           'cookie': 'network→www.douban.com→headers查看cookie'}
# 好评,中评,差评
# https://movie.douban.com/subject/26100958/comments?start=0&limit=20&sort=new_score&status=P&percent_type=h
# https://movie.douban.com/subject/26100958/comments?start=0&limit=20&sort=new_score&status=P&percent_type=m
# https://movie.douban.com/subject/26100958/comments?start=0&limit=20&sort=new_score&status=P&percent_type=l
server = 'https://movie.douban.com/subject/26100958/comments'
# 定义存储位置
global save_path
save_path = os.getcwd()+"\\Text\\"+'复仇者联盟4短评_好评.txt'
global page_max
# 好评 自行计算页码
page_max = 252  # 500 短评论,后面就看不到了,不知道是否豆瓣有意而为之给隐藏了,哈哈哈原来是没登录导致的。
global comments
comments = ''


# 获取短评内容
def get_comments(page):
    req = requests.get(url=page)
    html = req.content
    html_doc = str(html, 'utf-8')
    bf = BeautifulSoup(html_doc, 'html.parser')
    comment = bf.find_all(class_="short")
    for short in comment:
        global comments
        comments = comments + short.text


# 写入文件
def write_txt(chapter, content, code):
    with codecs.open(chapter, 'a', encoding=code)as f:
        f.write(content)


# 主方法
def main():
    for i in range(0, page_max):
        try:
            page = server + '?start='+str(i*20)+'&limit=20&sort=new_score&status=P&percent_type=h'
            get_comments(page)
            write_txt(save_path, comments, 'utf8')
        except Exception as e:
            print(e)


if __name__ == '__main__':
    main()

最终爬取完成,好评文件居然有足足的 200MB,而中评和差评加起来才 20MB 左右。

分析数据:

使用结巴中文分词第三方库来进行高频分析。

import jieba
import os

txt = open(os.getcwd()+"\\Text\\"+"复仇者联盟4短评_差评.txt", "r", encoding='utf-8').read()
words = jieba.lcut(txt)
counts = {}

for word in words:
    if len(word) == 1:
        continue
    else:
        counts[word] = counts.get(word, 0) + 1

items = list(counts.items())
items.sort(key=lambda x: x[1], reverse=True)

for i in range(0, 10):
    word, count = items[i]
    print("{0:<6}{1:>6}".format(word, count))

词云图

差评:

我爬取豆瓣10万短评,告诉你《复仇者联盟4》在讲什么?

中评:

我爬取豆瓣10万短评,告诉你《复仇者联盟4》在讲什么?

差评都不带一个脏字,好评就不再贴了(真正原因是分词统计的时候内存爆掉了)。


以上所述就是小编给大家介绍的《我爬取豆瓣10万短评,告诉你《复仇者联盟4》在讲什么?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

21天学通C语言

21天学通C语言

(美国)琼斯(Bradley L.Jones) (美国)埃特肯(Peter Aitken) / 信达工作室 / 人民邮电出版社 / 2012-8 / 69.00元

《21天学通C语言(第6版•修订版)》是初学者学习C语言的经典教程。本版按最新的标准(ISO∕IEC:9899-1999),以循序渐进的方式介绍了C语言编程方面知识,并提供了丰富的实例和大量的练习。通过学习实例,并将所学的知识用于完成练习,读者将逐步了解、熟悉并精通C语言。《21天学通C语言(第6版•修订版)》包括四周的课程。第一周的课程介绍了C语言程序的基本元素,包括变量、常量、语句、表达式、函......一起来看看 《21天学通C语言》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具