基于Python+爬虫的微博热搜数据可视化分析系统_微博爬虫可视化
import weibo
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# 设置微博客户端
client = weibo.APIClient('app_key', 'app_secret', 'access_token', 'access_token_secret')
# 获取微博热搜索
def get_weibo_hot_search(timespan):
hot_search = []
for i in range(timespan):
try:
hot = client.trends.hot(i)
hot_search.append(hot)
except Exception as e:
print(e)
break
return hot_search
# 解析微博热搜索数据
def parse_weibo_hot_search(hot_search):
data = []
for day in hot_search:
for item in day:
data.append({
'date': item['created_at'],
'rank': item['rank'],
'keyword': item['keyword'],
'query': item['query'],
'type': item['type']
})
return data
# 数据可视化
def visualize_data(data):
df = pd.DataFrame(data)
df = df[df['type'] == '100'] # 只考虑搜索类型为100的数据
df = df.sort_values(by=['date', 'rank'])
df_grouped = df.groupby('date')
dates = df_grouped.size().index
counts = df_grouped.size()
plt.figure(figsize=(15, 6))
plt.plot(dates, counts, color='blue', marker='o')
plt.title('微博热搜索趋势', fontsize=16)
plt.xlabel('日期', fontsize=14)
plt.ylabel('搜索次数', fontsize=14)
plt.xticks(rotation=45)
plt.show()
# 执行函数
if __name__ == '__main__':
timespan = 7 # 获取过去7天的数据
hot_search = get_weibo_hot_search(timespan)
data = parse_weibo_hot_search(hot_search)
visualize_data(data)
这段代码首先设置了微博客户端,然后定义了获取微博热搜索数据的函数,并解析了数据。最后,定义了一个可视化数据的函数,并在主程序中调用这些函数以执行微博热搜索数据的获取和可视化。这个例子展示了如何使用Python进行微博数据的爬取和可视化分析,对于学习微博数据分析的开发者有很好的教育价值。
评论已关闭