浅ピ筱 2023-06-08 15:08 采纳率: 0%
浏览 27

抖音 用户进入直播间之后维持在直播间里的逻辑

最近在写一个抢抖音直播间进房第一名的脚本,我自己用大号开直播小号使用脚本进入直播间发现,能够正常进入直播间,但在一分半左右的时候小号就在直播伴侣的观众列表上消失了。关播后发现观看时长也只有一秒钟,也就是只统计了进房请求发送到抖音服务器上的那一下。所以我想问是否有业界专家知道抖音用户是怎么维持在直播间的,服务器怎么判断用户还在直播间中?

import json

import httpx
from selenium import webdriver


def task():
    while True:
        url = f'https://live.douyin.com/webcast/room/web/enter/?aid=6383&app_name=douyin_web&live_id=1&device_platform=web&language=zh-CN&enter_from=web_homepage_follow&cookie_enabled=true&screen_width=1536&screen_height=864&browser_language=zh-CN&browser_platform=Win32&browser_name=Chrome&browser_version=113.0.0.0&web_rid={room_id}&room_id_str={room_id_str}&enter_source=&Room-Enter-User-Login-Ab=0&is_need_double_stream=false&msToken={cookies["msToken"]}&X-Bogus=DFSzswVjl3bAN9I1tShAtF9WX7jL&_signature=_02B4Z6wo000019O0cCAAAIDDU7aKYBN2Z9fTtHSAAJChKkHII.3kd0MSSZKaI3k2Gs.Fa6u6iVAgCN7Gkb8QYKs7OIWqwyD2.P5AJn2W4IBNVZDvJi2kTyFN9BkGFCHRnbcS5Vcje6GfSCxDf5'
        resp = httpx.get(url, headers=headers, cookies=cookies)
        if resp.status_code == 200:
            text = json.loads(resp.text)
            res = text['data']['data'][0]
            print(res['status'])
            if res['status'] == 2:
                break
            else:
                cookies['msToken'] = resp.cookies.get('msToken')


if __name__ == '__main__':
    wd = webdriver.Chrome()
    wd.maximize_window()
    wd.get('https://live.douyin.com/')
    input('登录抖音后回车以继续:')

    # 直播间id
    room_id = '575029505871'
    room_id_str = '7238861463593732924'
    cookies = {}
    web_cookies = wd.get_cookies()
    wd.quit()
    for ck in web_cookies:
        k, v = ck['name'], ck['value']
        cookies[k] = v
    cookies['passport_fe_beating_status'] = 'false'
    headers = {
        'Host': 'live.douyin.com',
        'Connection': 'keep-alive',
        'sec-ch-ua': '"Google Chrome";v="113", "Chromium";v="113", "Not-A.Brand";v="24"',
        'sec-ch-ua-mobile': '?0',
        'sec-ch-ua-platform': '"Windows"',
        'x-secsdk-csrf-token': '0001000000010e8699d1b2601fe20fe18dde87421220f472327bba3a1b9327d6bbeb94b7a4c81763d8a507b62864',
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36',
        'Accept': 'application/json, text/plain, */*',
        'Sec-Fetch-Site': 'same-origin',
        'Sec-Fetch-Mode': 'cors',
        'Sec-Fetch-Dest': 'empty',
        'Referer': f'https://live.douyin.com/{room_id}',
        'Accept-Encoding': 'gzip, deflate, br',
        'Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8'
    }
    task()

img

  • 写回答

1条回答 默认 最新

  • 月亮与山与草 2023-06-08 17:53
    关注

    抓一下接口,可能有心跳校验之类的

    评论

报告相同问题?

问题事件

  • 创建了问题 6月8日

悬赏问题

  • ¥50 计算机组成原理单周期mips处理器
  • ¥15 sap for java
  • ¥15 如何添加系统级别的屏幕边框
  • ¥100 图像处理,如何优化使得清晰
  • ¥15 请求看看这个仿真电路哪里有问题?
  • ¥100 关于python拓展屏使用pyautogui.screenshot无法截图的问题
  • ¥15 有偿求答 无导出权限怎么快速导出企业微信微文档
  • ¥15 求解答,怎么数码管中这么加入闹钟或者传感器,这应该怎么加入相应的代码
  • ¥15 scottplot5
  • ¥30 想问问这个建模怎么编程没有思路