社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python竟然能监控抖音?这也太刺激了!

Python绿色通道 • 5 年前 • 441 次点击  

↑ 关注 + 星标 ,每天学Python新技能

后台回复【 大礼包】送你Python自学大礼包

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

于是我突发奇想,决定用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()

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

Python自学超级硬核资料


最后送大家一份Python学习大礼包,从Python基础,爬虫,数据分析Web开发等全套资料,吃透资料,你可以扔掉其他资料,这些资料都是视频,学起来非常友好 


Ps:都是视频学习资料,非常适合基础不好或者零基础的同学


推荐阅读

  1. 微信新功能上线,网友们都玩疯了

  2. 网上找的 demo 有用,还做什么项目?

  3. 再见!收费的XShell,我改用国产良心工具!


看完记得关注@Python绿色通道
及时收看更多好文
↓↓↓


点个在看你最好看



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/115005