用python悄悄记录了室友的抖音在线时间
文章来源:python的爬虫与数据分析之路
作者:小dull鸟
今天给大家分享一篇有趣的文章,灵感来自于前几天与室友的聊天,他告诉我抖音可以实时显示人的在线情况,如下图:
只需要进入抖音消息框,然后进入用户聊天窗口,就可以看到上述在线状态了。
然后我灵机一动,是不是用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/hubdriver = 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).textstrtime = 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点左右睡的,看起来作息还是比较规律的。
本文以学习娱乐为主,请勿做其他用途
本文所述的代码及数据已上传至公众号后台,请输入抖音在线获取。另外,程序中出现的问题可以扫描下方二维码私聊我:
每日留言
实诚点,说说你每天花多长时间在抖音上?
喜欢浏览哪类视频?
或者新学的一个小技巧?
(字数不少于15字)
留言赠书
恭喜我还是太年轻啊获得昨日的留言赠书一本
联系老表微信:pythonbrief
近期推荐阅读:
【1】整理了我开始分享学习笔记到现在超过250篇优质文章,涵盖数据分析、爬虫、机器学习等方面,别再说不知道该从哪开始,实战哪里找了
【2】【终篇】Pandas中文官方文档:基础用法6(含1-5)
如果你觉得文章不错的话,分享、收藏、在看、留言666是对老表的最大支持。