使用Python获取春节档电影影评,制作可视化词云图
生活随笔
收集整理的這篇文章主要介紹了
使用Python获取春节档电影影评,制作可视化词云图
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python獲取春節檔電影影評,制作可視化詞云圖
- 前言
- 準備工作
- 采集數據部分
- 基本思路流程
- 代碼實戰
- 可視化詞云圖
- 代碼展示
- 效果展示
前言
春節電影聽巳月說都還可以,我不信,我覺得還是要看看看過的觀眾怎么說,于是我點開了流浪地球2 …
看起來好像不錯的樣子,8.2的評分,三十多億的票房
就是這評價也太多了,那我們今天就把網友對它的評論獲取下來,做成可視化詞云圖看看大家討論最多的是什么。
準備工作
使用的環境
Python 3.8 解釋器 Pycharm 編輯器需要手動安裝的模塊
parsel 數據解析模塊 requests 數據請求模塊在cmd直接pip安裝即可
不會安裝的小伙伴看這篇:
如何安裝python模塊, python模塊安裝失敗的原因以及解決辦法
采集數據部分
基本思路流程
一、數據來源分析
1、明確需求()
- 采集的網站是什么?
- 采集的數據是什么?
2、抓包分析相關數據來源
通過瀏覽器自帶開發者工具進行抓包分析
- 打開開發者工具: F12 或者 鼠標右鍵點擊檢查選擇network
- 刷新網頁: 讓本網頁的數據內容重新加載一遍
- 關鍵字搜索: 通過關鍵字<要的數據>, 搜索查詢相對應的數據包
二. 代碼實現步驟
基本四大步驟
發送請求:模擬瀏覽器對于url地址發送請求
獲取數據:獲取服務器返回響應數據
開發者工具 --> response
解析數據:提取我們想要的數據內容
評論相關數據
保存數據:把數據內容保存表格文件里面
代碼實戰
發送請求,模擬瀏覽器對于url地址發送請求
for page in range(0, 200, 20):# 請求鏈接url = f'https://movie.douban.com/subject/35267208/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)print(response)獲取數據, 獲取服務器返回響應數據。
print(response.text)解析數據,提取我們想要的數據內容。
把獲取下來html字符串數據 <response.text>, 轉成可解析對象
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,}寫入數據
csv_writer.writerow(dit) print(name, rating, date, area, votes, short)創建文件對象
f = open('data10.csv', mode='a', encoding='utf-8-sig', newline='') csv_writer = csv.DictWriter(f, fieldnames=['昵稱','推薦','時間','地區','有用','評論', ])寫入表頭
csv_writer.writeheader()代碼僅做參考,完整代碼、詳細視頻講解在文末名片自取即可
可視化詞云圖
代碼展示
import pandas as pd import jieba import wordclouddf = pd.read_csv('data10.csv') df.head()info_list = df['評論'].to_list() string = ' '.join(jieba.lcut(''.join(info_list))) stringwc = wordcloud.WordCloud(width=1000,height=700,background_color='white',font_path='msyh.ttc',scale=15, ) wc.generate(string) wc.to_file('1.png')evaluate_num = df['推薦'].value_counts().to_list() evaluate_type = df['推薦'].value_counts().index.to_list() import pyecharts.options as opts from 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} <br/>: {c} (ze8trgl8bvbq%)"),label_opts=opts.LabelOpts(color="rgba(255, 255, 255, 0.3)"),) ) c.render_notebook()效果展示
好了今天的分享就到這,大家快去試試吧,下次見!
總結
以上是生活随笔為你收集整理的使用Python获取春节档电影影评,制作可视化词云图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 星际飞龙完全教学
- 下一篇: Unity 定时回调系统技术专题(Sik