最近发现抖音有一个新功能,可以显示抖音的在线状态,如下图所示:

于是我突发奇想,决定用python监控一下某位好友的在线状态,没想到还有意外的收获。

本次监控主要用到python的appium库,关于appium的使用和安装,网站有很多教程,但是我一个都没试成功过,于是我一咬牙自己做了一套,教程在文末,不成功过来找我!!!

首先用appium客户端打开抖音,配置如下:

{
  "platformName": "Android",
  "deviceName": "VOG-AL00",
  "appPackage": "com.ss.android.ugc.aweme",
  "appActivity": ".main.MainActivity",
  "noReset": "true",
  "fullReset": "false"
}

点击start session:

点击“消息”元素:

再点击进入聊天窗口:

显示在线状态元素的id为:

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

那么,我们只需要在当前页面一直请求获取该元素的值就可以获取该好友的在线状态了,如果返回“在线”,则判该用户在线;否则,判为不在线。

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.根据在线状态画出折线图
import pandas as pd
import pyecharts.options as opts
from pyecharts.charts import Line
df = pd.read_excel('在线时间.xls',usecols=['时间', '状态'])
x=df['时间'].values.tolist()
y=df['状态'].values.tolist()
line=(
    Line()
    .add_xaxis(xaxis_data=x)
    .add_yaxis(series_name="在线时间",y_axis=y, is_step=True)
    .set_global_opts(title_opts=opts.TitleOpts(title="抖音在线时间折线图"))
)
line.render_notebook()

你能从图中发现什么秘密吗?

本文代码、Appium安装和使用教程获取方式如下:

点击上方名片,后台输入抖音

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐