zoukankan      html  css  js  c++  java
  • 如何使用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"
    }
    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.获取在线状态和时间并保存
    whileTrue:
    status=driver.find_element_by_id('com.ss.android.ugc.aweme:id/blc').text
    strtime =time.strftime("%H:%M:%S", time.localtime(time.time()))
    ifstatus=='在线':
    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记录室友的抖音在线时间的文章就介绍到这了,更多相关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"
    }
    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.获取在线状态和时间并保存
    whileTrue:
    status=driver.find_element_by_id('com.ss.android.ugc.aweme:id/blc').text
    strtime =time.strftime("%H:%M:%S", time.localtime(time.time()))
    ifstatus=='在线':
    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记录室友的抖音在线时间的文章就介绍到这了,更多相关python记录抖音在线时间内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
  • 相关阅读:
    【Azure 应用服务】由 Azure Functions runtime is unreachable 的错误消息推导出 ASYNC(异步)和 SYNC(同步)混用而引起ThreadPool耗尽问题
    【Azure API 管理】是否可以将Swagger 的API定义导入导Azure API Management中
    【Azure 应用服务】Azure Function 不能被触发
    【Azure 环境】Azure Key Vault (密钥保管库)中所保管的Keys, Secrets,Certificates是否可以实现数据粒度的权限控制呢?
    【Azure 事件中心】为应用程序网关(Application Gateway with WAF) 配置诊断日志,发送到事件中心
    【Azure 事件中心】azure-spring-cloud-stream-binder-eventhubs客户端组件问题, 实践消息非顺序可达
    【Azure API 管理】Azure API Management通过请求中的Path来限定其被访问的频率(如1秒一次)
    【Azure 环境】前端Web通过Azure AD获取Token时发生跨域问题(CORS Error)
    【Azure 应用服务】记一次Azure Spring Cloud 的部署错误 (az spring-cloud app deploy -g dev -s testdemo -n demo -p ./hellospring-0.0.1-SNAPSHOT.jar --->>> Failed to wait for deployment instances to be ready)
    【Azure 应用服务】App Service中抓取 Web Job 的 DUMP 办法
  • 原文地址:https://www.cnblogs.com/nanhe/p/13518675.html
Copyright © 2011-2022 走看看