簡單的用Python來獲取微博評論,製作詞雲圖。 首先準備環境模塊 環境使用 Python 3.8或以上版本即可 Pycharm 任意版本 模塊使用 import requests import wordcloud import jieba 以上三個模塊都需要安裝,直接pip install 加上模 ...
簡單的用Python來獲取微博評論,製作詞雲圖。
首先準備環境模塊
環境使用
- Python 3.8或以上版本即可
- Pycharm 任意版本
模塊使用
import requests import wordcloud import jieba
以上三個模塊都需要安裝,直接pip install 加上模塊名安裝即可。
爬蟲基本流程
一. 數據來源分析
- 明確需求: 明確採集的網站以及數據內容
- 網址: https://weibo.com/2803301701/NxcPMvW2l
- 數據: 評論內容 - 抓包分析: 通過開發者工具進行抓包
- 打開開發者工具: F12
- 刷新網頁
- 通過關鍵字查找對應的數據
關鍵字: 評論的內容
數據包地址: https://weibo.com/ajax/statuses/buildComments?is_reload=1&id=4979141627611265&is_show_bulletin=2&is_mix=0&count=10&uid=2803301701&fetch_level=0&locale=zh-CN
二. 代碼實現步驟
- 發送請求 -> 模擬瀏覽器對於url地址發送請求
- 獲取數據 -> 獲取伺服器返迴響應數據
- 解析數據 -> 提取評論內容
- 保存數據 -> 保存本地文件 (文本 csv Excel 資料庫)
代碼展示
數據採集部分
1、發送請求 -> 模擬瀏覽器對於url地址發送請求
# 模擬瀏覽器 headers = { # Referer 防盜鏈 'Referer':'https://weibo.com/2803301701/NxcPMvW2l', # User-Agent 用戶代理 'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' } # 請求網址 url = 'https://weibo.com/ajax/statuses/buildComments' # 請求參數 data = { 'is_reload': '1', 'id': '4979141627611265', 'is_show_bulletin': '2', 'is_mix': '0', 'max_id': max_id, 'uid': '2803301701', 'fetch_level': '0', 'locale': 'zh-CN', } # 發送請求 response = requests.get(url=url, params=data, headers=headers)
2、獲取數據 -> 獲取伺服器返迴響應數據
json_data = response.json() print(json_data)
3、解析數據 -> 提取評論內容
# 提取評論所在列表 content_list = json_data['data'] # for迴圈遍歷, 提取列表裡面元素 for index in content_list: content = index['text_raw'] print(content)
4、保存數據
保存文本
with open('data.txt', mode='a', encoding='utf-8') as f: f.write(content) f.write('\n') print(content)
保存表格
with open('data.txt', mode='a', encoding='utf-8') as f: f.write(content) f.write('\n') print(content) df = pd.DataFrame(lis) df.to_excel(excel_writer:'data.xlsx', index=False) # 數據採集和可視化我還錄製了詳細的視頻講解 # 跟代碼一起打包好放在這個摳裙了 708525271
可視化部分
# 導入結巴分詞 import jieba # 導入詞雲圖模塊 import wordcloud """詞雲分析""" # 讀取文件內容 f = open('data.txt', encoding='utf-8').read() # 分詞 txt = jieba.lcut(f) # 把列表合併成字元串 string = ' '.join(txt) # 製作詞雲圖配置 wc = wordcloud.WordCloud( font_path='msyh.ttc', width=1000, # 寬 height=700, # 高 background_color='white', # 背景顏色 預設黑色 ) # 導入內容 wc.generate(string) wc.to_file('詞雲_3.png') print(txt)
詞雲圖效果展示
好了,本次分享就結束了,下次再見!