中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python爬蟲數據舉例分析

發布時間:2021-11-20 15:25:43 來源:億速云 閱讀:154 作者:iii 欄目:編程語言

本篇內容介紹了“Python爬蟲數據舉例分析”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

獲取數據

打開斗魚直播界面,連續點擊翻頁

Network查看異步請求XHR,找到對應的URL

Python爬蟲數據舉例分析

Python爬蟲數據舉例分析

成功獲取到對應的URL。

https://www.douyu.com/gapi/rkc/directory/0_0/2

翻頁只變動末尾的最后一個數字。

采用requests+pyquery來爬取。

部分爬蟲代碼如下。

def get_datas(url):
 data = []
 doc = get_json(url)
 jobs=doc['data']['rl']
 for job in jobs:
 dic = {}
 dic['user_name']=jsonpath.jsonpath(job,'$..nn')[0] #用戶名
 dic['user_id']= jsonpath.jsonpath(job,'$..uid')[0] #用戶ID
 dic['room_name']=jsonpath.jsonpath(job,'$..rn')[0] #房間名
 dic['room_id']=jsonpath.jsonpath(job,'$..rid')[0] #房間ID
 dic['redu']=jsonpath.jsonpath(job,'$..ol')[0] #熱度
 dic['c2name']=jsonpath.jsonpath(job,'$..c2name')[0] #分區
 dic['time']= stampToTime(time.time()) 
 data.append(dic)
 return data

剩下就是連續爬取,我設置的是10分鐘爬取一次。

將爬取得到的數據存入Mysql中。

#存到Mysql
from sqlalchemy import create_engine
engine = create_engine('mysql+mysqldb://root:***密碼***@localhost:3306/demo?charset=utf8mb4')
final_result.to_sql('data_douyu',con=engine, index=False, index_label=False,if_exists='append', chunksize=1000)

連續爬取了大概七天多時間,最終得到2062萬條直播數據。

Python爬蟲數據舉例分析

數據分析

將數據導入python。

Python爬蟲數據舉例分析

去重,其實爬蟲部分已經設置去重,這里為了保險再來一次,不過事實證明確實沒有重復。

因為實際爬取時間是0731下午到0808上午,為了方便后文計算,這里選取0801-0807這連續七天的直播數據。

#去重
data = data[['c2name', 'redu', 'room_id', 'room_name', 'time','user_id', 'user_name']].drop_duplicates()
#篩選時間
data = data.loc[(data['time'] <= '2019-08-07') & (data['time'] >= '2019-08-01')]

我們還需要對主播按照id分組匯總。

先利用groupby分類匯總,再計算增加新列。

data_abc['av_redu'] = data_abc['redu']/data_abc['time_num']
data_abc['hour'] = data_abc['time_num']/ 42 #每十分鐘一次,七天
data_abc.head()

Python爬蟲數據舉例分析

這樣我們就又構建了一組以主播為索引的數據。

Python爬蟲數據舉例分析

也就是說這七天之內,直播過的主播共有23萬余人,那么下文讓我們看看他們的生存現狀吧。

數據可視化

將這23萬主播按照平均直播時長和平均直播熱度繪制一個散點圖。

import seaborn as sns
import matplotlib as mpl #配置字體
mpl.rcParams['font.sans-serif'] = ['SimHei'] # 指定默認字體
mpl.rcParams['axes.unicode_minus']
plt.figure(figsize=(8,8))
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
sns.scatterplot(data_test["hour"],data_test["av_redu"],hue=data_test["c2name"])

結果如下圖所示。

Python爬蟲數據舉例分析

從上圖能看出,絕大部分主播都在底部,能夠成為大主播的寥寥無幾,且熱度較高的主播集中于上述的幾個熱門分區,其他分區主播發展普遍一般。

由于有20多萬的主播集中在下方,很難看出他們平均直播時長的分布。

另一方面,主播分化程度較為嚴重,為了更直觀的展現趨勢,我們以1萬平均熱度為分界,分析不同規模的主播每天平均直播時長。

#頭部主播
plt.figure(figsize=(10,6))
plt.xticks(fontsize=13)
plt.yticks(fontsize=13)
sns.distplot(data_abc.loc[(data_abc['av_redu'] > 10000)]["hour"],kde=True,rug=False,color='y')
plt.show()

Python爬蟲數據舉例分析

圖中可以發現較多的主播每天直播時長集中在5小時左右,這5個小時的游戲并非我們平時玩的那么簡單。主播直播時往往既需要全神貫注玩游戲,又要和觀眾一起互動交流。

而較少主播直播時長則大部分在1小時左右,不能持續直播,導致觀眾少;觀看人數少,主播沒動力,久而久之,也就難以出頭,形成惡性循環。

上圖中有一些異常值,即平均每日直播時長超過20小時的直播間,這樣的直播大部分為“一起看”分區,可以24小時連續播放電影電視劇之類的視頻,余下都是游戲或者比賽的官方頻道,用來循環播放官方視頻。

那么主播們大部分在什么時間直播呢?

他們的觀眾也是同一時間準時觀看嗎?

Python爬蟲數據舉例分析

從同一時間段內主播直播與觀眾觀看在線人數可以看出,有兩個時段有差異。

一個是晚上21點后至凌晨6點前,以直播為職業的主播往往已經進行了5-6小時高強度不間斷的直播,會選擇后半夜好好休息一下,而將看直播作為娛樂的觀眾則躺在床上看到上頭;

另一個時段是下午12點左右到18點,觀眾都正在上班上學,而很多全職主播中午起床吃飯后,正好下午開始了他們的直播。

大部分主播并非我們想象的那樣,時間自由,賺錢容易。每天在線直播的主播人數以十萬甚至百萬為單位,但真正贏得觀眾喜愛和自愿刷大量禮物的事實上寥寥無幾。一時的流量換不來觀眾永遠的買賬,以噱頭博出位后如何用內容留住觀眾,是每個主播在探索的方向。

隨著行業監管的加強,直播平臺逐漸褪去“泡沫”,流量紅利消失,回歸理性。“熊貓”已經遠走,行業內的競爭更加集中在剩下的頭部平臺之間,這些平臺也更需要探索更優質的內容和更多元的發展!

“Python爬蟲數據舉例分析”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屯门区| 兰考县| 乌拉特前旗| 霸州市| 博乐市| 吉首市| 辉县市| 黄龙县| 巴林右旗| 漾濞| 安溪县| 乳山市| 北碚区| 平武县| 武功县| 永胜县| 新巴尔虎左旗| 内江市| 安龙县| 特克斯县| 土默特右旗| 江津市| 西林县| 望城县| 万州区| 大庆市| 武定县| 大冶市| 马边| 惠东县| 吉林省| 荔波县| 老河口市| 梨树县| 德格县| 明溪县| 那曲县| 曲沃县| 永春县| 确山县| 岳阳县|