如何使用python记录室友的抖音在线时间


Posted in Python onJune 29, 2020

今天给大家分享一篇有趣的文章,灵感来自于前几天与室友的聊天,他告诉我抖音可以实时显示人的在线情况,如下图:

如何使用python记录室友的抖音在线时间

只需要进入抖音消息框,然后进入用户聊天窗口,就可以看到上述在线状态了。

然后我灵机一动,是不是用python可以实时监测一个人全天的在线情况?

说干就干,决定先拿我室友“开刀”

如何使用python记录室友的抖音在线时间

1.逻辑分析

俗话说,磨刀不误砍柴工,做任何事之前,都要先把逻辑分析清楚,要不然只会事倍功半。
起初本来想用手机模拟器来操作,但是不幸的是手机模拟器不显示在线状态,没办法,只能把自己的心爱的手机贡献出来了。

首先用appium客户端打开抖音(关于appium的安装和使用,请参考之前的文章),配置如图:

如何使用python记录室友的抖音在线时间

点击start session:

如何使用python记录室友的抖音在线时间

点击“消息”元素:

如何使用python记录室友的抖音在线时间

再点击进入聊天窗口:

如何使用python记录室友的抖音在线时间

显示在线状态元素的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记录室友的抖音在线时间的文章就介绍到这了,更多相关python记录抖音在线时间内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python爬取网站数据保存使用的方法
Nov 20 Python
Python中logging模块的用法实例
Sep 29 Python
Python爬虫中urllib库的进阶学习
Jan 05 Python
matplotlib给子图添加图例的方法
Aug 03 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
Apr 09 Python
详解Python 切片语法
Jun 10 Python
Python使用sklearn库实现的各种分类算法简单应用小结
Jul 04 Python
Tensorflow不支持AVX2指令集的解决方法
Feb 03 Python
tensorflow 环境变量设置方式
Feb 06 Python
python:删除离群值操作(每一行为一类数据)
Jun 08 Python
Selenium及python实现滚动操作多种方法
Jul 21 Python
Python 虚拟环境工作原理解析
Dec 24 Python
Python sublime安装及配置过程详解
Jun 29 #Python
keras K.function获取某层的输出操作
Jun 29 #Python
Python pytesseract验证码识别库用法解析
Jun 29 #Python
用Python开发app后端有优势吗
Jun 29 #Python
在keras里实现自定义上采样层
Jun 28 #Python
Python如何对XML 解析
Jun 28 #Python
keras 自定义loss层+接受输入实例
Jun 28 #Python
You might like
用PHP连接Oracle for NT 远程数据库
2006/10/09 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
功能强大的PHP图片处理类(水印、透明度、旋转)
2015/10/21 PHP
PHP自定义函数实现格式化秒的方法
2016/09/14 PHP
再谈javascript图片预加载技术(详细演示)
2011/03/12 Javascript
js控制frameSet示例
2013/09/10 Javascript
用javascript判断IE版本号简单实用且向后兼容
2013/09/11 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
2014/09/29 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
Nodejs搭建wss服务器教程
2017/05/24 NodeJs
原生JS实现的简单小钟表功能示例
2018/08/30 Javascript
Vue.js 实现数据展示全部和收起功能
2018/09/05 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
JavaScript 处理树数据结构的方法示例
2019/06/16 Javascript
vue实现的封装全局filter并统一管理操作示例
2020/02/02 Javascript
JS前后端实现身份证号验证代码解析
2020/07/23 Javascript
Python Mysql自动备份脚本
2008/07/14 Python
python列表操作之extend和append的区别实例分析
2015/07/28 Python
Python Paramiko模块的使用实际案例
2018/02/01 Python
Python数据类型之Dict字典实例详解
2019/05/07 Python
Python3 批量扫描端口的例子
2019/07/25 Python
python3.5 cv2 获取视频特定帧生成jpg图片
2019/08/28 Python
scrapy头部修改的方法详解
2020/12/06 Python
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
5个HTML5的常用本地存储方式详解与介绍
2021/03/27 HTML / CSS
会计出纳员的自我评价
2014/01/15 职场文书
设备管理实施方案
2014/05/31 职场文书
安全责任书模板
2014/07/22 职场文书
临时租车协议范本
2014/09/23 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
2015年教学工作总结
2015/04/02 职场文书
MySQL为id选择合适的数据类型
2021/06/07 MySQL
POST提交数据常见的四种方式
2022/01/18 HTML / CSS