[超详细] Python3爬取豆瓣影评、去停用词、词云图、评论关键词绘图处理

本文详细介绍了如何使用Python3爬取《大侦探皮卡丘》的豆瓣影评,通过正则表达式解析网页,抓取评论内容。接着,对评论进行分词处理,包括不分词、jieba分词和结巴分词并去除停用词,生成词云图。最后,提取前20个评论关键词进行分析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

爬取豆瓣电影《大侦探皮卡丘》的影评,并做词云图和关键词绘图
第一步:找到评论的网页url。
https://movie.douban.com/subject/26835471/comments?start=0&limit=20&sort=new_score&status=P
第二步:鼠标放在评论上右键检查,分析源代码,确定抓取的内容。

 <span class="short">萌就行了!这个世界观感觉梦想成真了!</span>

如上,只要抓取该标签下的文本就好,这里可以用正则表达式,里面的文本内容用(.*?)抓取。

第三步:观察分页情况。
点击下一页,发现链接变为:
https://movie.douban.com/subject/26835471/comments?start=20&limit=20&sort=new_score&status=P
发现只有start=后面的数字改变,每页20条评论,每页*20即可

导入模块

这些模块可在cmd下输入pip install 模块名,或者pycharm中setting-Project Interpreter里右边的+号安装

import requests
import re
from wordcloud import WordCloud
import jieba
from PIL import Image
import jieba.analys
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib as mpl

1、用requests获取url

因为爬虫次数较多可能IP被封,所以找了个代理IP,参数里习惯性加上headers伪装成浏览器访问。

def getHtml(url):
	# 获取url页面
	headers = {
   
   
		'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.67 Safari/537.36'}
	proxies = {
   
   'http': '61.135.217.7:80'}
	response = requests.get(url, headers=headers, proxies=proxies)
	response.encoding = 'utf-8'
	return response.text

2、用正则解析网页,提取文本,返回评论列表

def getComment(url):
	# 用正则提取评论文本,返回一个列表
	html = getHtml(url) #调用上一个函数
	comments = re.findall('<span class="short">(.*?)</span>', html, re.S)  # re.S记得加上,空字符串
	onepageComments = []  # 创建一个空列表,存放评论
	#用正则表达式解析出来的是一个列表,遍历列表,将每一个评论取出,添加到空列表里,每个评论后面换行
	for i in comments:
		onepageComments.append(<
以下是一个使用Python爬取豆瓣最新评论并生成词云图的示例代码: ```python import requests from bs4 import BeautifulSoup import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 爬取豆瓣评论的函数 def get_comments(url): headers = { &#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3&#39;} response = requests.get(url, headers=headers) soup = BeautifulSoup(response.text, &#39;html.parser&#39;) comments = soup.find_all(&#39;span&#39;, class_=&#39;short&#39;) return [comment.get_text() for comment in comments] # 生成词云的函数 def generate_wordcloud(text): wordcloud = WordCloud(font_path=&#39;simhei.ttf&#39;, background_color=&#39;white&#39;, width=800, height=600).generate(text) plt.imshow(wordcloud, interpolation=&#39;bilinear&#39;) plt.axis(&#39;off&#39;) plt.show() # 主函数 def main(): url = &#39;https://movie.douban.com/subject/1292052/comments?status=P&#39; # 替换为你要爬取豆瓣电影页面URL comments = get_comments(url) text = &#39; &#39;.join(comments) text = &#39; &#39;.join(jieba.cut(text)) generate_wordcloud(text) if __name__ == &#39;__main__&#39;: main() ``` 这段代码的主要功能如下: 1. 使用requests库爬取豆瓣评论页面。 2. 使用BeautifulSoup解析HTML内容,提取评论文本。 3. 使用jieba库对文本进行分词。 4. 使用wordcloud库生成词云图。 5. 使用matplotlib库显示生成的词云图。 使用这段代码时,请注意以下几点: 1. 确保安装了所需的Python库:requests, bs4, jieba, wordcloud, matplotlib。 2. 将font_path参数设置为本地中文字体文件路径,以确保中文能正确显示。 3. 修改url变量为你想要爬取豆瓣电影页面URL。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值