Python 官方文档:入门教程 => 点击学习
前言 环境使用 python 3.8 解释器PyCharm 编辑器 所需模块 import parsel >>> pip install parselimport requests >>> pip i
import parsel >>> pip install parselimport requests >>> pip install requestsimport csv
https://movie.douban.com/subject/35267208/comments?limit=20&status=P&sort=new_score
Https://movie.douban.com/subject/35267208/comments?limit=20&status=P&sort=new_score
https://movie.douban.com/subject/35267208/comments?limit=20&status=P&sort=new_score
返回
表示请求成功
# 请求链接url = f'https://movie.douban.com/subject/35267224/comments?start=20&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)print(response)
解析方法:
把获取下来html字符串数据
, 转成可解析对象
提取具体数据内容
.comment-info a --> 定位class类名为comment-info下面a标签
a::text --> 提取a标签里面文本
get() --> 获取第一个标签内容
attr() --> 提取属性
selector = parsel.Selector(response.text) # 第一次提取, 所有div标签divs = selector.CSS('div.comment-item')# for循环遍历, 把列表里面元素一个一个提取出来for div in divs: 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() # 地区 votes = div.css('.votes::text').get() # 有用 short = div.css('.short::text').get().replace('\n', '') # 评论 # 数据存字典里面 dit = { '昵称': name, '推荐': rating, '时间': date, '地区': area, '有用': votes, '评论': short, } # 写入数据 print(name, rating, date, area, votes, short)
data.csv --> 文件名
mode=a --> 保存方式 追加保存
encoding=‘utf-8’ --> 编码格式
newline --> 换行符
f --> 文件对象
f = open('data10.csv', mode='a', encoding='utf-8-sig', newline='')csv_writer = csv.DictWriter(f, fieldnames=[ '昵称', '推荐', '时间', '地区', '有用', '评论',])# 写入表头csv_writer.writeheader()
import pandas as pdimport jiebaimport Wordcloud
df = pd.read_csv('data10.csv')df.head()
import pyecharts.options as optsfrom pyecharts.charts import Piedata_pair = [list(z) for z in zip(evaluate_type, evaluate_num)]data_pair.sort(key=lambda x: x[1])c = ( Pie(init_opts=opts.InitOpts(bg_color="#2c343c")) .add( series_name="豆瓣影评", data_pair=data_pair, rosetype="radius", radius="55%", center=["50%", "50%"], label_opts=opts.LabelOpts(is_show=False, position="center"), ) .set_global_opts( title_opts=opts.TitleOpts( title="推荐分布", pos_left="center", pos_top="20", title_textstyle_opts=opts.TextStyleOpts(color="#fff"), ), legend_opts=opts.LegendOpts(is_show=False), ) .set_series_opts( tooltip_opts=opts.TooltipOpts( trigger="item", fORMatter="{a}
{b}: {c} ({d}%)" ), label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"), ))c.render_notebook()
import pyecharts.options as optsfrom pyecharts.charts import Piedata_pair = [list(z) for z in zip(area_type, area_num)]data_pair.sort(key=lambda x: x[1])d = ( Pie(init_opts=opts.InitOpts(bg_color="#2c343c")) .add( series_name="豆瓣影评", data_pair=data_pair, rosetype="radius", radius="55%", center=["50%", "50%"], label_opts=opts.LabelOpts(is_show=False, position="center"), ) .set_global_opts( title_opts=opts.TitleOpts( title="地区分布", pos_left="center", pos_top="20", title_textstyle_opts=opts.TextStyleOpts(color="#fff"), ), legend_opts=opts.LegendOpts(is_show=False), ) .set_series_opts( tooltip_opts=opts.TooltipOpts( trigger="item", formatter="{a}
{b}: {c} ({d}%)" ), label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"), ))d.render_notebook()
来源地址:https://blog.csdn.net/m0_48405781/article/details/132308128
--结束END--
本文标题: 20亿票房但不好看?Python分析《孤注一掷》豆瓣评论数据
本文链接: https://www.lsjlt.com/news/389012.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0