如何用 Python采集 <豆某yin片>并作词云图分析 ?
创始人
2024-05-29 00:15:33
0

嗨害大家好鸭!我是小熊猫~

总有那么一句银幕台词能打动人心

总有那么一幕名导名作念念不忘

不知道大家有多久没有放松一下了呢?

本次就来给大家采集一下某瓣电影并做词云分析

康康哪一部才是大家心中的经典呢?
最近又有哪一部可能会成为经典呢?

源码、素材python永久安装包:点击此处跳转文末名片获取

在这里插入图片描述

环境使用:

  • Python 3.8 解释器

  • Pycharm 编辑器

模块使用:

  • import parsel >>> pip install parsel

  • import requests >>> pip install requests

  • import csv

在这里插入图片描述

代码展示

# 导入数据请求模块 --> 第三方模块, 需要安装 pip install requests
import requests
# 导入数据解析模块 --> 第三方模块, 需要安装 pip install parsel
import parsel
# 导入csv模块 --> 内置模块, 不需要安装
import csv

安装模块:

  1. win + R 输入cmd 然后输入 安装命令 pip install requests

  2. pycharm终端里面 输入安装命令 pip install requests
    模拟浏览器: --> headers 请求头 <开发者工具进行复制>
    把python代码伪装成浏览器去发送请求
    目的: 为了防止被反爬
    反爬: 你得不到数据, 或者返回的数据不是你想要的
    如何批量替换

  3. 选中替换内容, ctrl + R

  4. 勾选上 .* 正则

  5. 输入正则匹配规则, 进行替换
    :.*

    采集的速度过快/频繁, 可能会IP异常

解决方法:

  1. 登陆账号加上cookie
  2. 用IP代理, 切换IP
    免费的IP, https 可能用不了 HTTP有一些可以的, 质量不好
    氪金的IP 一个IP 几分钱一个(感兴趣的可以翻一翻我之前的文章)
    多页的数据采集
    分析请求链接的变化规律

在这里插入图片描述

正式代码

1. 发送请求, 模拟浏览器对于url地址发送请求

# 0<起始数包含>, 201<末尾数不包含>, 20<步长>
for page in range(0, 201, 20):# 请求链接 字符串格式化方法 -->url = f'https://movie.****.com/subject/4811774/comments?start={page}&limit=20&status=P&sort=new_score'# 伪装模拟headers = {# User-Agent 用户代理, 表示浏览器基本身份信息'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36'}# 发送请求response = requests.get(url=url, headers=headers)

2. 获取数据, 获取服务器返回响应数据

开发者工具: responseresponse.text --> 获取响应文本数据response --> 响应对象text --> 文本
    # 把获取下来html字符传数据, 转换可解析的对象selector = parsel.Selector(response.text)

3. 解析数据, 提取我们想要的数据内容

影评相关数据

css选择器: 根据标签属性提取数据内容

    # 第一次提取所有内容divs = selector.css('div.comment-item')# 把列表里面元素一个一个提取出来, for循环遍历for div in divs:"""湖南 长沙.comment-info a::text --> 提取类名为comment-info标签下面a标签里面文本数据get() --> 获取第一个标签数据, 返回字符串数据类型attr() --> 获取标签里面属性"""name = div.css('.comment-info a::text').get()  # 昵称rating = div.css('.rating::attr(title)').get()  # 评分date = div.css('.comment-time ::attr(title)').get()  # 日期area = div.css('.comment-location::text').get()  # 归属地short = div.css('.short::text').get().replace('\n', '')  # 评论count = div.css('.vote-count::text').get()  # 有用# 把数据放到字典里面dit = {'昵称': name,'评分': rating,'日期': date,'归属地': area,'评论': short,'有用': count,}# 写入数据csv_writer.writerow(dit)print(name, rating, date, area, short, count)

创建文件对象

f = open('影评.csv', mode='a', encoding='utf-8-sig', newline='')
# f 文件对象 fieldnames 表头/字段名
csv_writer = csv.DictWriter(f, fieldnames=['昵称','评分','日期','归属地','评论','有用',
])# 写入表头
csv_writer.writeheader()

绘制词云图
模块导入

# 导入结巴模块 --> 第三方模块, 需要安装 pip install jieba
import jieba
# 导入pandas --> 第三方模块, 需要安装 pip install pandas
import pandas as pd
# 导入词云模块 --> 第三方模块, 需要安装 pip install wordcloud
import wordcloud

读取csv表格里面数据内容

df = pd.read_csv('影评.csv')

获取评论内容

content_list = df['评论'].to_list()
# 把列表转成字符串
content = ''.join(content_list)
# 进行分词处理
string = ' '.join(jieba.lcut(content))

词云图配置

wc = wordcloud.WordCloud(width=1000,  # 宽height=700,  # 高background_color='white',  # 背景颜色font_path='msyh.ttc', # 设置字体stopwords={'了', '的', '是', '我', '在', '和'},scale=15
)
# 传入文字内容
wc.generate(string)
# 输出词云图
wc.to_file('词云图.png')
print(string)

本篇文章就到这里啦~

我是小熊猫,咱下篇文章再见啦(✿◡‿◡)

在这里插入图片描述

👇问题解答 · 源码获取 · 技术交流 · 抱团学习请联系👇

相关内容

热门资讯

我喜欢的一件艺术品英语作文【... 我喜欢的一件艺术品英语作文 篇一Title: The Beauty of "Starry Night...
成绩单的英语作文【推荐3篇】 成绩单的英语作文 篇一Title: Reflections on My Academic Perfo...
买东西英语作文【实用3篇】 买东西英语作文 篇一Online Shopping: Convenient but RiskyWit...
英语一等奖演讲稿(优质6篇) 英语一等奖演讲稿 篇一Title: The Power of English in a Global...
小学英语作文【通用6篇】 小学英语作文 篇一:My Favorite AnimalMy favorite animal is ...
低碳生活英语作文60字【最新... 低碳生活英语作文60字 篇一Living a Low-carbon LifestyleLiving ...
英语常用口语:最易被误解的词... 英语常用口语:最易被误解的词语节选一 篇一在英语口语中,有许多词语往往会因为语言的多义性而容易被误解...
奥运会的英语作文(优选5篇) 奥运会的英语作文 篇一The Olympic Games: A Celebration of Uni...
我的朋友的英语作文 我的朋友的英语作文(精选20篇)  在日常生活或是工作学习中,大家都经常看到作文的身影吧,借助作文可...
描写家乡小河的英语作文(优选... Describing My Hometown River - Part OneMy Hometown...
5句话英语作文【经典5篇】 5句话英语作文 篇一Title: The Importance of ExerciseIn toda...
国家的英语作文【推荐3篇】 国家的英语作文 篇一My Country: A Land of Diversity and Unit...
描写夏天的英语作文200字(... 篇一:炎热的夏天夏天是一年中最炎热的季节,它给人们带来了无尽的欢乐和热情。在夏天里,阳光明媚,天空湛...
My friend英语作文(... My Friend 英语作文 篇一My Friend SarahI would like to in...
气候的英语作文(优选3篇) 气候的英语作文 篇一Title: The Impact of Climate Change on O...
英语作文书信格式【精简6篇】 英语作文书信格式 篇一Dear John,I hope this letter finds you ...
假期生活英语作文(最新3篇) 假期生活英语作文 篇一How I Spent My Summer VacationSummer va...
英语机构的老师寄语范文【精简... 英语机构的老师寄语范文 篇一尊敬的学生们:首先,我想对你们表达最诚挚的问候和祝福。作为你们的英语机构...
动物英语作文:My Pet【... 动物英语作文:My Pet 篇一My Pet - A Loyal CompanionI have a...
我的舞台优秀初中英语作文【精... 我的舞台优秀初中英语作文 篇一My StageEver since I was a little g...