數據分析(微博熱搜榜單熱度排名)


利用上次爬取的微博熱搜榜單進行改進,對微博熱搜榜單進行數據分析,額外爬取了榜單的熱度值

本次實現的主要問題在於圖像的正確表現上

一是對於字符串在圖表上如何實現,另一是標題字符串過長的問題

對於字符串的寫入,采用了先繪制不帶字符串的圖表,在將相應字體(字體在電腦的fonts文件夾下選擇)的字符串配置到x軸

配置完成后,因為字符串過長而重疊,所有使用rotation=90講使字符串垂直寫入

此時字符串長度還是超出了界面,所以設置bottom(底面)的值使字符串完整顯示

代碼如下:

import requests
from bs4 import BeautifulSoup
from matplotlib import pyplot as plt
from matplotlib import font_manager
#配置字體
my_font=font_manager.FontProperties(fname='C:\Windows\Fonts\SIMLI.TTF')
r=requests.get('https://s.weibo.com/top/summary')
soup=BeautifulSoup(r.text,'html.parser')
a=soup.find_all('td','td-02')
t=[]
s=[]
for i in a[1:]:
i=i.contents
t.append(list(i)[1].string)#標題
s.append(int(list(i)[3].string))#熱度值
plt.figure(figsize=(15,10))
plt.subplots_adjust(bottom=0.45)#調整下底
plt.bar(range(len(t)),s)#繪制圖表
plt.xticks(range(len(t)),t,fontproperties=my_font,rotation=90)#配置字符串
plt.show()

效果如下

 

 榜單是實時更新的,所有你在不同時候運行程序將得到不同的數據

本次的設計主要是學會了在圖表中字符串的處理,以及在爬取過程中加深對HTML代碼的理解和認識


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM