python爬取豆瓣流浪地球影评,生成词云
代码很简单,一看就懂。
(没有模拟点击,所以都是未展开的)
地址:
https://movie.douban.com/subject/26266893/reviews?rating=&start=0
这里start就是后面参数变化的地方。一页20条,所以循环的话 每次start加20就好。 代码:
import requests
from bs4 import BeautifulSoup
page=0 # url = 'https://movie.douban.com/subject/26266893/reviews?rating=&start='+str(page)
# s = requests.session()
# res = s.get(url).text
# soup = BeautifulSoup(res,'html.parser')
# comments = soup.find_all("div",class_="short-content")
# print (comments[2].get_text().replace("(展开)"," ").strip()) while 1:
url = 'https://movie.douban.com/subject/26266893/reviews?rating=&start=' + str(page)
s = requests.session()
res = s.get(url).text
soup = BeautifulSoup(res, 'html.parser')
comments = soup.find_all("div", class_="short-content")
with open('流浪地球.txt', 'a', encoding='gb18030', errors='ignore') as f:
for comment in comments:
str_comment = comment.get_text().replace("(展开)"," ").strip()
text = str_comment.replace("这篇影评可能有剧透"," ").strip()
f.write(text+"\n")
page+=20
生成词云代码:
# -*- coding: utf-8 -*-
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba # 生成词云
def create_word_cloud(filename):
text = open("流浪地球.txt".format(filename), encoding='gb18030', errors='ignore').read()
# 结巴分词
wordlist = jieba.cut(text, cut_all=True)
wl = " ".join(wordlist)
# 设置词云
wc = WordCloud(
# 设置背景颜色
background_color="white",
# 设置最大显示的词云数
max_words=2000,
# 这种字体都在电脑字体中,一般路径
font_path='C:\Windows\Fonts\simfang.ttf',
height=1200,
width=1600,
# 设置字体最大值
max_font_size=100,
# 设置有多少种随机生成状态,即有多少种配色方案
random_state=30,
)
myword = wc.generate(wl) # 生成词云
# 展示词云图
plt.imshow(myword)
plt.axis("off")
plt.show()
wc.to_file('py_book_流浪地球.png') # 把词云保存下 if __name__ == '__main__':
create_word_cloud('word_py')
结果:
撸码千万条,简洁第一条。代码不规范,编译两行泪。
python爬取豆瓣流浪地球影评,生成词云的更多相关文章
- 用python爬取微博数据并生成词云
很早之前写过一篇怎么利用微博数据制作词云图片出来,之前的写得不完整,而且只能使用自己的数据,现在重新整理了一下,任何的微博数据都可以制作出来,放在今天应该比较应景. 一年一度的虐汪节,是继续蹲在角落默 ...
- 【python3】爬取简书评论生成词云
一.起因: 昨天在简书上看到这么一篇文章<中国的父母,大都有毛病>,看完之后个人是比较认同作者的观点. 不过,翻了下评论,发现评论区争议颇大,基本两极化.好奇,想看看整体的评论是个什么样, ...
- 【Python】利用豆瓣短评数据生成词云
在之前的文章中,我们获得了豆瓣爬取的短评内容,汇总到了一个文件中,但是,没有被利用起来的数据是没有意义的. 前文提到,有一篇微信推文的关于词云制作的一个实践记录,准备照此试验一下. 思路分析 读文件 ...
- Python爬取豆瓣《复仇者联盟3》评论并生成乖萌的格鲁特
代码地址如下:http://www.demodashi.com/demo/13257.html 1. 需求说明 本项目基于Python爬虫,爬取豆瓣电影上关于复仇者联盟3的所有影评,并保存至本地文件. ...
- Python爬取豆瓣指定书籍的短评
Python爬取豆瓣指定书籍的短评 #!/usr/bin/python # coding=utf-8 import re import sys import time import random im ...
- 利用Python爬取豆瓣电影
目标:使用Python爬取豆瓣电影并保存MongoDB数据库中 我们先来看一下通过浏览器的方式来筛选某些特定的电影: 我们把URL来复制出来分析分析: https://movie.douban.com ...
- Python爬取豆瓣电影top
Python爬取豆瓣电影top250 下面以四种方法去解析数据,前面三种以插件库来解析,第四种以正则表达式去解析. xpath pyquery beaufifulsoup re 爬取信息:名称 评分 ...
- 爬取豆瓣电影影评,生成wordcloud词云,并利用监督学习根据评论自动打星
本文的完整源码在git位置:https://github.com/OceanBBBBbb/douban-ml 爬取豆瓣影评 爬豆瓣的影评比较简单,豆瓣没有做限制,甚至你都不用登陆就可以看全部,我这里用 ...
- python 爬取豆瓣电影短评并wordcloud生成词云图
最近学到数据可视化到了词云图,正好学到爬虫,各种爬网站 [实验名称] 爬取豆瓣电影<千与千寻>的评论并生成词云 1. 利用爬虫获得电影评论的文本数据 2. 处理文本数据生成词云图 第一步, ...
随机推荐
- Dynamics CRM 批量新建域用户
好久没写了,今天大牛教了我偷懒的批量新建域用户的方法 是不是觉得 控制面板 =>管理工具=>用户和计算机=>Users=>新建用户,一个个建,很烦是不是,而且耗时,我上个项目 ...
- oracle_union_operator
SQL: UNION Operator This SQL tutorial explains how to use the SQL UNION operator with syntax and exa ...
- log4go的一些改进设想
log4go 的 4.0.2 版本(https://github.com/ccpaging/log4go/tree/4.0.2)发布以后, 看了看别的 go 语言日志文件设计.发现了一篇好文: log ...
- 团队合作之Scrum
CCSU小助手 一:开发团队简介 队名:瓜队 组员:钟文兴.周畅.吉刘磊.唐仲勋 宣言:We are a team at any time! 团队项目描述: 内容:“生活在长大”: 目标:为了方便对学 ...
- 关于Java中截取字符串
获取系统时间:to_char(sysdate,'yyyy-mm-dd')截取CREATETIME常量的前10位字符串:CREATETIME.substring(0,10)截取DESCRIPT常量的前2 ...
- python入门9 条件语句
条件语句: if 条件为真: 执行语句块 (执行完结束不执行elif,else) elif 条件为真: 执行语句块 (执行完结束不执行else) else: 执行语句块 #coding:utf-8 # ...
- NO.010-2018.02.15《上邪》两汉:佚名
上邪_古诗文网 上邪 两汉:佚名 上邪,我欲与君相知,长命无绝衰.上天呀!我渴望与你相知相惜,长存此心永不褪减.上邪(yé)!:天啊!.上,指天.邪,语气助词,表示感叹. 相知:相爱.命:古与“令”字 ...
- NO.008-2018.02.13《折桂令·春情》元代:徐再思
折桂令·春情_古诗文网 折桂令·春情 元代:徐再思 平生不会相思,才会相思,便害相思.生下来以后还不会相思,才刚刚懂了什么是相思,却深受着相思之苦. 身似浮云,心如飞絮,气若游丝.身像飘浮的云,心 ...
- linnx 修改ip地址
vi /etc/sysconfig/network-scripts/ifcfg-eth0 [编辑网卡的配置文件] 输入上述命令后回车,打开配置文件,使用方向键移动光标到最后一行,按字母键“i”,进入编 ...
- JavaScript常用方法
判断运行客户端 function isPhone() { var flag = false; var userAgentInfo = navigator.userAgent; var Agents = ...