Python實現監測抖音在線時間,實時記錄一個人全天的在線情況

只需要進入抖音消息框,然後進入用戶聊天窗口,就可以看到上述在線狀態了。

然後我靈機一動,是不是用python可以實時監測一個人全天的在線情況?

說幹就幹,決定先拿我朋友“開刀”

1.邏輯分析

俗話說,磨刀不誤砍柴工,做任何事之前,都要先把邏輯分析清楚,要不然只會事倍功半。
起初本來想用手機模擬器來操作,但是不幸的是手機模擬器不顯示在線狀態,沒辦法,只能把自己的心愛的手機貢獻出來了。

首先用appium客戶端打開抖音(關於appium的安裝和使用,請參考之前的文章),配置如圖:

點擊start session:

點擊“消息”元素:

再點擊進入聊天窗口:

顯示在線狀態元素的id爲:

com.ss.android.ugc.aweme:id/blc

那麼,我們只需要在當前頁面一直請求獲取該元素的值就可以獲取該好友的在線狀態了,如果返回“在線”,則判該用戶在線;否則,判爲不在線。

2.Python代碼擼起來

1.appium模塊操控打開抖音

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.依次點擊進入消息列表、用戶聊天窗

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.獲取在線狀態和時間並保存

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.根據在線狀態畫出折線圖

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學習扣qun:784758214,從0基礎的python腳本到web開發、爬蟲、django、數據挖掘數據分析等,0基礎到項目實戰的資料都有整理。送給每一位python的小夥伴!每晚分享一些學習的方法和需要注意的小細節,學習路線規劃,利用編程賺外快。點擊加入我們的 python學習圈

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章