python爬取豆瓣评论制作词云代码
作者:大学生编程地 发布时间:2023-03-14 04:31:40
标签:python,豆瓣,词云
一、爬取豆瓣热评
该程序进行爬取豆瓣热评,将爬取的评论(json文件)保存到与该python文件同一级目录下
注意需要下载这几个库:requests、lxml、json、time
import requests
from lxml import etree
import json
import time
class Spider(object):
def __init__(self):
#seif.ure='https://movie.douban.com/subject/23885074/reviews?start=0'
self.headers={
'User-Agent':'Mozilla/5.0(Windows NT6.1;Win64;x64)AppleWebKit/537.36(KHTML,like Gecko)Chrome/75.0.3700.100Safari/537.36'
}
def get_data(self,url):
response = requests.get(url,headers=self.headers).content.decode('utf-8')
page=etree.HTML(response)#xpath 对象
#获取所有数据节点
node_list = page.xpath('//div[@class="review-list "]/div')
for node in node_list:
#作者
author = node.xpath('.//header[@class="main-hd"]//a[2]/text()')[0]
#评论
text = node.xpath('string(.//div[@class="main-bd"]//div[@class="short-content"])')
items={
'author':author,
'text':text.strip()
}
#持久化存储
with open('yewen.json','a',encoding='utf-8') as f:
f.write(json.dumps(items,ensure_ascii=False)+'\n')
def run(self):
for i in range(1,47):
url='https://movie.douban.com/subject/26885074/reviews?start{}'.format(i*20)
print('正在爬取第{}页'.format(i))
self.get_data(url)
time.sleep(3)
if __name__=='__main__':
s=Spider()
s.run()
二、制作词云
该程序将json中的数据进行处理,提取重要信息,并用wordcloud库制作词云图片,同样保存到与该python文件同一级目录下
注意需要下载这几个库:jieba、wordcloud、json
import jieba
from wordcloud import WordCloud
import json
f= open("yewen.json", "r", encoding="utf-8")
data_list= f.readlines()
str =''
for data in data_list:
text= json.loads(data)['text']
str +=text
#替换无关紧要的词语
result_str = str.replace('展开', '').replace('这篇','').replace('影评','').replace('电影','').replace('这部', '').replace('可能', '').replace('剧情','')
cut_text = jieba.lcut(result_str)
result = " ".join(cut_text)
wc = WordCloud(font_path='simhei.ttf',
background_color="white",
max_words=600,
width=1000,
height=1000,
min_font_size=20,
max_font_size=100,)
#mast=plt.imreda('snake.jpg')#背景图片
wc.generate(result)#转化为词云的操作
wc.to_file("text.jpg")#保存
f.close()
来源:https://blog.csdn.net/qq_46500711/article/details/122288753
0
投稿
猜你喜欢
- 一、迭代器(Iterator)1.1 可迭代对象(Iterable)可迭代对象,可以简单理解为可遍历对象,即能够使用 for 循环遍历的对象
- 本文详细分析了smarty缓存的用法。分享给大家供大家参考。具体分析如下:一开始以为smarty只是用来做一些掩饰php代码功能,但是后来才
- 安装通过 pip 安装 Beautiful Soup 模块:pip install beautifulsoup4 。 还可以使用 PyCha
- 本文实例讲述了security.js实现的RSA加密功能。分享给大家供大家参考,具体如下:在项目中遇到要对用户输入的密码进行RSA加密的需求
- Python中对象方法的定义很怪异,第一个参数一般都命名为self(相当于其它语言的this),用于传递对象本身,而在调用的时候则不必显式传
- 本文实例为大家分享了python贪吃蛇游戏的具体代码,供大家参考,具体内容如下贪吃蛇游戏截图:首先安装pygame,可以使用pip安装pyg
- 自己有一套模块化的思路,想搜索一下有没有共鸣结果排名靠前的是通过class拼凑页面的想法。模块化是twinsen提出来的,从我接收第一个po
- 平时我们获取事件对象一般写法如下:function getEvent(event) { return e
- 昨天晚上跑起来一个classification实验,今天发现训练loss在降,然而accuracy永远是0 。。。直觉告诉我evaluati
- 在做项目中遇到这样一个问题,就是我们需要添加几组数据到数据库,但是具体几组数据不确定,有客户来填写,比如我们需要添加打折策略,可能个策略有很
- 今天写了个爬虫,在抓取数据的时候遇到一个问题,我觉得如果不注意,这个问题很容易被忽略,所以特意在博客记录下:问题描述:比如,我在提取信息时,
- 前言什么是命令行程序呢?像我们常见的webpack,vue-cli都属于命令行程序。本文将带你从0开始用node写一个自己的命令行程序,并发
- 一、安装前的准备1、下载安装程序包,可到MySQL官方网站www.mysql.com下载,如图1-1:图1-1下载后的安装文件如图1-2所示
- 目录1. 字符串拆分函数.split()2. 字符串拼接函数.join()扩展:理解" ".join(s.split(&
- SQLServer中开启CDC之后,在某些情况下会导致事务日志空间被占满的现象为:在执行增删改语句(产生事务日志)的过程中提示,The tr
- 简介SequenceNumber是SQL Server2012推出的一个新特性。这个特性允许数据库级别的序列号在多表或多列之间共享。对于某些
- 1.登录mysql: mysql -u root -h 127.0.0.1 -p2.切换数据库 use mysql3.授权grant all
- RPC是什么?所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,
- 一、引入必要文件下载地址:(https://github.com/nghuuphuoc/bootstrapvalidator/archive
- 程序执行时需要读取两个文件command.txt和ipandpass.txt。格式如下:command.txt:ThreadNum:1por