作者: 小柒

爬取

逼乎上很多高手,对《流浪地球》在豆瓣的评分做了细思缜密的分析,有兴趣的也去自己搜索,这里主要是爬取《流浪地球》的好、中、差短评并分词分析。

爬取数据:

import os

import requests

import codecs

from bs4 import BeautifulSoup

'''遇到python不懂的问题,可以加Python学习交流群:1004391443一起学习交流,群文件还有零基础入门的学习资料'''

# 给请求指定一个请求头来模拟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'}

server = 'https://movie.douban.com/subject/26266893/comments'

# 定义存储位置

global save_path

save_path = os.getcwd()+"\\Text\\"+'短评_好评.txt'

global page_max

page_max = 25

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()

最终发现,每个类型只能查询出 500 条短评,后面就看不到了,不知道是否豆瓣有意而为之给隐藏了,哈哈哈原来是没登录导致的(headers 设置下 cookie 就可以)。最后读了一下好评文本居然有40MB,不过最终还是按照500条采样。

# 好评500条,中评500条,差评500条,自行更换 percent_type 参数即可。

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

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

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

分析

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

import jieba

import os

txt = open(os.getcwd()+"\\Text\\"+"短评_差评.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))

前十好评高频出现词汇:

前十中评高频出现词汇:

前十差评高频出现词汇:

前十高频词汇分析基本没有任何参考价值,基本就是科幻、地球、特效、电影,这些都是电影的基本元素,其它的都是一些中性词汇。

然后,我们分析了11-30的高频词汇,提取了部分关键词:

好评:

结论:国产希望好莱坞科幻煽情大片。大家注意一下,前三十高频词汇只出现了刘慈欣的名字,并没有出现吴京的名字。

中评:

结论:总体来说还算中肯,不知道为啥会出现三星?原谅我没有读过原著,原来是《三体》中"三恒星"系统。

差评:

结论:既然是一星差评,肯定是一黑到底,剧情尴尬、台词尴尬、剪辑尴尬、吴京尴尬,相比于好评中高频出现的原著作者刘慈欣,应该有大部分吴京黑粉。

python爬取流浪地球_python爬取《流浪地球》十万个短评得出以下结论相关推荐

  1. python爬取流浪地球_python爬取《流浪地球》获十几万评论点赞,超给力!

    原标题:python爬取<流浪地球>获十几万评论点赞,超给力! 我自己到现在其实还没看这部电影,毕竟这电影这么火,电影院现在都很难买到好的位置.所以我打算不如先看看大家是怎么评价这部电影的 ...

  2. python爬取流浪地球_python爬取《流浪地球》16w评论

    今年春节档电影<流浪地球>火的不要不要,截止到今天 2 月 17 日,上映 13 天,目前票房已达 36 亿,可喜可贺. 我自己到现在其实还没看这部电影,毕竟这电影这么火,电影院现在都很难 ...

  3. python获取天气分析_Python爬取南京市往年天气预报,使用pyecharts进行分析

    上一次分享了使用matplotlib对爬取的豆瓣书籍排行榜进行分析,但是发现python本身自带的这个绘图分析库还是有一些局限,绘图不够美观等,在网上搜索了一波,发现现在有很多的支持python的绘图 ...

  4. python分析b站_Python爬取并分析B站最热排行榜,我发现了这些秘密

    现在大家的生活中,已经越来越离不开B站了,2020年的第一季度,B站月活跃用户达到了1.72亿,日活跃用户也已经突破了5000万个用户.源源不断的流量让B站的up主们也是粉丝数目不断暴涨,百万粉丝的u ...

  5. python制作手机壁纸_Python爬取手机壁纸图片

    使用Python爬取图片. 1 说明 本文通过爬虫程序的编写,实现了一个简单易懂的爬虫程序,方便初学者理解,主要程序分为网页获取函数,以及保存下载函数,这就是所有爬虫程序的基本思想.(本文不涉及反爬, ...

  6. python微信爬取教程_python爬取微信文章方法

    本文给大家分享的是使用python通过搜狗入口,爬取微信文章的小程序,非常的简单实用,有需要的小伙伴可以参考下 本人想搞个采集微信文章的网站,无奈实在从微信本生无法找到入口链接,网上翻看了大量的资料, ...

  7. python动态爬取实时_python爬取动态数据实战---猫眼专业版-实时票房(二)

    学习python进行简单的数据爬取(基于python 3.x).再进行数据页面解析之后,使用scrapy框架进行爬取数据.没有实现自己预想的效果,着实是自己能力有限,无法灵活使用该框架.就使用自己的办 ...

  8. python微博爬虫分析_python爬取和分析新浪微博(一):scrapy构建新浪微博榜单、博主及微博信息爬虫...

    1. 爬虫项目介绍 爬虫首先基于python scrapy 框架,使用了随机用户代理和IP代理等反爬技巧,将爬取到的微博领域数据,各领域榜单博主信息和博主的微博信息分别存入的mysql数据库对应的表格 ...

  9. python爬取评论_Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特

    ### 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件.然后对影评进行分词分析,使用词云生成树人格鲁特的形象照片. ### 2. 代码实现 此部 ...

  10. python向上取整_python向上取整

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import math f = 11.2print math.ceil(f) # ...

最新文章

  1. 哪一类功率放大电路效率最高_最简单逆变器电路讲解计算,电工电子动手学技术,电路好案例推荐...
  2. PHP 从数组对象中取出数组提示:Undefined property: stdClass::$subject
  3. linux 进程调度源码分析,Linux调度器源码分析
  4. 51CTO网站博客改版意见寻求
  5. 图解 hexo + github 从零快速 搭建个人博客 windowss
  6. python制作系统监控_用python做一个系统监控程序
  7. 不需要英语的计算机行业,北京评职称不再考外语计算机 将涉及300多万人
  8. 实对称矩阵的特征值求法_【8】实(反)对称矩阵的特征值
  9. 借贷行业,还有明天吗?
  10. 魔兽世界服务器维护掉线,《魔兽世界怀旧服》老是掉线怎么办 老是掉线解决办法...
  11. 数据库 无损分解和保持依赖的判断
  12. 存储器电路设计学习记录之 buffer提高驱动能力/带负载能力
  13. MySQL服务器配置优化(读书笔记)
  14. java公倍数_java中如何计算最小公倍数
  15. 【2021四川省赛】E.Don‘t Really Like How The Story Ends 图论
  16. 【Git】回退 commit 版本详解
  17. rocketmq client端源码分析(1)-consumer实现
  18. 算法心得:高效算法的奥秘 作者:[美] Henry S. Warren, Jr.
  19. 计统大作业Hello P2P
  20. Linux中阶—文件服务vsftpd (九)

热门文章

  1. 电缆故障测试仪使用及注意事项——TFN FB11电缆故障测试仪
  2. 社群裂变的方法和优势
  3. 软件管理----安装软件、rpm、 yum、源码安装 卸载软件
  4. 网络管理员(初级桌面运维工程师)工作常用解决方法
  5. 电路理论基础学习笔记(2):chap1 电路元件与电路基本定律
  6. 「产品中心」AIM-M系列医疗IT绝缘监测故障定位装置及系统介绍
  7. nuxt.js之SSR服务端内存泄漏导致CPU过高的解决过程
  8. 塑化行业SRM供应商管理系统:缩短采购周期时间,改善供应商采购管理
  9. APACHE-ATLAS-2.1.0简介(三)
  10. ubuntu禁止ftp用户登录shell