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

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

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

然后我灵机一动,是不是用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悄悄记录了室友的抖音在线时间的更多相关文章

  1. Python实现监测抖音在线时间,实时记录一个人全天的在线情况

    前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理. 作者:小dull鸟 今天给大家分享一篇有趣的文章,灵感来自于前几天与室友的 ...

  2. Python爬虫帮你打包下载所有抖音好听的背景音乐,还不快收藏一起听歌【华为云技术分享】

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/devcloud/article/detai ...

  3. 我用Python远程探查室友的网页浏览记录,他不愧是成年人!

    过程: 利用Python制作远程查看别人电脑的操作记录,与其它教程类似,都是通过邮件返回. 利用程序得到目标电脑浏览器当中的访问记录,生产一个文本并发送到你自己的邮箱,当然这个整个过程除了你把pyth ...

  4. 利用Python脚本悄无声息的遥控室友电脑开机密码!

    整蛊一下室友就行了,切勿用于非法用途! 利用python脚本控制室友windows系统电脑的开机密码.利用random()生成随机数(密码),天知地知,密码只有你自己知道! Python代码分为cli ...

  5. Python学习记录day6

    title: Python学习记录day6 tags: python author: Chinge Yang date: 2016-12-03 --- Python学习记录day6 @(学习)[pyt ...

  6. Python学习记录day5

    title: Python学习记录day5 tags: python author: Chinge Yang date: 2016-11-26 --- 1.多层装饰器 多层装饰器的原理是,装饰器装饰函 ...

  7. Python实现文字聊天室

    你是否想过用所学的Python开发一个图形界面的聊天室程序啊? 像这样的: 如果你想开发这样一个有点怀旧风格的聊天程序,那么可以接着看: 要开发这个聊天程序,你需要具备以下知识点: asyncore ...

  8. Python学习记录day8

    目录 Python学习记录day8 1. 静态方法 2. 类方法 3. 属性方法 4. 类的特殊成员方法 4.1 __doc__表示类的描述信息 4.2 __module__ 和 __class__ ...

  9. Python学习记录day7

    目录 Python学习记录day7 1. 面向过程 VS 面向对象 编程范式 2. 面向对象特性 3. 类的定义.构造函数和公有属性 4. 类的析构函数 5. 类的继承 6. 经典类vs新式类 7. ...

随机推荐

  1. 数据可视化之powerBI技巧(十七)在Power BI中对数据进行分组

    根据某一个维度的数据,进行分组统计,是很常见的做法,比如按年龄对客户进行分组,按考试成绩进行分组统计等,这篇文章介绍一下,在PowerBI中如何对数据进行分组. 在PowerQuery编辑器中分组 在 ...

  2. tolua-ToLua#暖更新

    "重写"C#函数的Lua函数要访问C#类对象的没有wrap进Lua环境的私有数据成员.私有方法的时候,目前只能使用静态反射. 关于全Lua开发.全C#开发的问题.全Lua开发可能或 ...

  3. 导出数据到Excel的时候报JAVA.LANG.NOSUCHMETHODERROR: ORG.APACHE.POI.SS.USERMODEL.CELLSTYLE.SETVERTICALALIGNMENT(LORG/APACHE/POI/SS/USERMODEL/VERTICALALIGNMENT;)V

    JAVA.LANG.NOSUCHMETHODERROR: ORG.APACHE.POI.SS.USERMODEL.CELLSTYLE.SETVERTICALALIGNMENT(LORG/APACHE/ ...

  4. CSS上划线、下划线、删除线等方法

    text-decoration:underline;     下划线 text-decoration:overline;    顶划线 text-decoration:line-through;  删 ...

  5. ajax原生js封装

    不带注释的 function ajax(json) { json.type = json.type ? json.type : 'get'; json.async = json.async == fa ...

  6. vue 应用 :多语言显示

    <template> <div class="hello2"> <page-content> </page-content> < ...

  7. 【mysql】- 索引使用篇

    回顾 每个索引都对应一棵B+树,B+树分为好多层,最下边一层是叶子节点,其余的是内节点.所有用户记录都存储在B+树的叶子节点,所有目录项记录都存储在内节点. InnoDB 存储引擎会自动为主键(如果没 ...

  8. 微信小程序开发(一)基础知识学习

    1.特点:   ①无DOM对象(虚拟DOM),一切基于组件化(复用.解耦) ②四个重要文件: *.js.*.wxml --> html..wxss --> css.*.json ③无需下载 ...

  9. 数据库(二):初识sql语句

    进击のpython ***** 数据库--初识sql语句 前面提到了说,数据库管理系统就像我们曾经做过的输入命令返回结果的socket通信差不多 那既然提到了命令,在MySQL中,有一些基本的语句,就 ...

  10. python基础--深浅copy(重点)

    在此申明一下,博客参照了https://www.cnblogs.com/jin-xin/,自己做了部分的改动 深浅copy(重点) 先问问大家,什么是拷贝?拷贝是音译的词,其实他是从copy这个英文单 ...