前言
环境使用
- Python 3.8
- Pycharm
模块使用
- requests
- jieba 结巴分词
- wordcloud 词云
数据来源分析
明确需求 <数据来源分析>
- 采集数据是什么东西? 通过那个url地址得到想要数据的内容
- 抓包分析: 浏览器自带工具 --> 开发者工具
I. F12 或者 鼠标右键点击检查 选择 network 点击第二页
II. 复制评论内容, 在开发者工具里进行搜索, 可以直接找对应评论数据包
https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100029079354&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1
对于本篇文章有疑问的同学可以加【资料白嫖、解答交流群:753182387】
数据获取代码实现
发送请求
url = \'https://club.jd.com/comment/productPageComments.action\'
# 请求参数 --> 字典数据类型 构建完整键值对
data = {
# \'callback\': \'fetchJSON_comment98\',
\'productId\': \'100029079354\',
\'score\': \'0\',
\'sortType\': \'5\',
\'page\': page,
\'pageSize\': \'10\',
\'isShadowSku\': \'0\',
\'rid\': \'0\',
\'fold\': \'1\',
}
# 模拟浏览器 --> headers 请求头
headers = {
\'user-agent\': \'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.0.0 Safari/537.36\'
}
# 发送请求 requests 模块 get 方法<请求方式>
# 等号左边: url/params/headers 属于get函数里面形式参数 等号右边 url/data/headers 传入进去参数/变量
response = requests.get(url=url, params=data, headers=headers)
获取数据, 服务器返回响应数据
- response 响应对象
- response.text 获取响应文本数据
- response.json() 获取响应json字典数据
解析数据
字典数据类型: 通过键值对提取数据内容 <字典取值>
根据冒号左边的内容[键], 提取冒号右边的内容[值]
# for循环遍历 把列表里面元素一个一个提取出来
for i in response.json()[\'comments\']:
content = i[\'content\']
print(content)
保存数据
with open(\'口红评论.txt\', mode=\'a\', encoding=\'utf-8\') as f:
# 写入数据内容
f.write(content)
f.write(\'\\n\')
词云代码
# 导入结巴分词 jieba 模块国人开源的
import jieba
# 导入词云
import wordcloud
# 导入读取图片
import imageio
# 读取图片内容
py = imageio.imread(\'img\\\\矢量图5.png\')
# 读取文件 返回对象 mode 方式模式 r 读 a追加写入保存 mode 默认是r
f = open(\'口红评论.txt\', encoding=\'utf-8\')
# 读取内容
text = f.read()
# 分词 --> 把完整一句话分成很多个单词
string = \' \'.join(jieba.lcut(text))
# 词云图 配置
wc = wordcloud.WordCloud(
width=1000, # 宽
height=700, # 高
font_path=\'msyh.ttc\', # 词云字体
# 设置停用词, 把没有词汇, 停用
stopwords={\'的\', \'了\', \'很\', \'也\'},
# 设置背景颜色
# background_color=\'pink\',
contour_width=5,
contour_color=\'pink\',
mask=py
)
# string 数据传入进去
wc.generate(string)
# 导入词云图
wc.to_file(\'有形状的词云黑.png\')
print(string)
来源:https://www.cnblogs.com/qshhl/p/16851581.html
本站部分图文来源于网络,如有侵权请联系删除。