今天給大家分享一篇有趣的文章,靈感來自于前幾天與室友的聊天,他告訴我抖音可以實時顯示人的在線情況,如下圖:
只需要進入抖音消息框,然后進入用戶聊天窗口,就可以看到上述在線狀態了。
然后我靈機一動,是不是用python可以實時監測一個人全天的在線情況?
說干就干,決定先拿我室友“開刀”
1.邏輯分析
俗話說,磨刀不誤砍柴工,做任何事之前,都要先把邏輯分析清楚,要不然只會事倍功半。
起初本來想用手機模擬器來操作,但是不幸的是手機模擬器不顯示在線狀態,沒辦法,只能把自己的心愛的手機貢獻出來了。
首先用appium客戶端打開抖音(關于appium的安裝和使用,請參考之前的文章),配置如圖:
點擊start session:
點擊“消息”元素:
再點擊進入聊天窗口:
顯示在線狀態元素的id為:
com.ss.android.ugc.aweme:id/blc
那么,我們只需要在當前頁面一直請求獲取該元素的值就可以獲取該好友的在線狀態了,如果返回“在線”,則判該用戶在線;否則,判為不在線。
2.Python代碼擼起來
1.appium模塊操控打開抖音
1
2
3
4
5
6
7
8
9
10
|
desired_caps = { "platformName" : "Android" , "deviceName" : "MHA_AL00" , "appPackage" : "com.ss.android.ugc.aweme" , "appActivity" : ".main.MainActivity" , "noReset" : "true" , "fullReset" : "false" } server = 'http://localhost:4723/wd/hub' driver = webdriver.Remote(server, desired_caps) |
2.依次點擊進入消息列表、用戶聊天窗
1
2
3
|
driver.find_element_by_xpath( '//android.widget.TextView[contains(@text,"消息")]' ).click() time.sleep( 1 ) driver.find_element_by_xpath( '//android.widget.TextView[contains(@text,"女神的昵稱")]' ).click() |
3.獲取在線狀態和時間并保存
1
2
3
4
5
6
7
8
9
10
11
12
13
|
while True : status = driver.find_element_by_id( 'com.ss.android.ugc.aweme:id/blc' ).text strtime = time.strftime( "%H:%M:%S" , time.localtime(time.time())) if status = = '在線' : status = '在線' else : status = '不在線' wb = xlrd.open_workbook( '1.xls' ) tabsheet = wb.sheets()[ 0 ] k = tabsheet.nrows #表格已有的行數 worksheet.write(k , 0 , i[ 'name' ]) # 酒店名字 worksheet.write(k , 1 , i[ 'addr' ]) # 酒店地址 time.sleep( 60 ) |
4.根據在線狀態畫出折線圖
1
2
3
4
|
df = pd.read_excel( '1.xls' , encoding = 'gbk' , usecols = [ '時間' , '狀態' ]) line = Line( "折線圖" ) line.add( "在線狀態" , df[ '時間' ], df[ '狀態' ], xaxis_rotate = 45 ) line.render( '折線圖.html' ) |
根據當代“惡臭”青年的生活習慣,睡前醒后十有八九是在刷抖音,所以可以推斷出,室友今天是在9點20分左右醒的、23點左右睡的,看起來作息還是比較規律的。
總結
到此這篇關于如何使用python記錄室友的抖音在線時間的文章就介紹到這了,更多相關python記錄抖音在線時間內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!
原文鏈接:https://www.cnblogs.com/shann001/p/13203066.html