doupoa
一个不甘落后的热血青年!
Ping通途说

对抗抖音X-Bogus、msToken新思路

文章目录[隐藏]

0.前言

抖音为了对抗爬虫等非法访问行为,所有的网站均采用了JSVMP代码保护方案,以确保请求合法性及数据包完整有效性。所有的操作均在浏览器内部使用JS生成,若无法逆向X-Bogus及msToken算法,又或是自行补全参数生成环境将会耗费开发者大量时间。

虽然我们(一般开发者)无法还原其运行环境,那我们能否直接使用他生成好的环境?接下来将介绍使用Playwright实现轻松访问相关接口。

1. 实现

我不喜欢慢慢吞吞介绍,直接放出相关代码,每一行都有注释。

from playwright.sync_api import Page, TimeoutError, sync_playwright
import json

cookies = json.load(open('cookies.json', 'r')) # 可以使用Cookie Editer扩展导出

def get_user_info(page: Page): # 获取用户信息
    resp = page.request.get(
    url="https://creator.douyin.com/aweme/v1/creator/user/info/") # 直接使用浏览器发送请求,任何参数不用带,浏览器会自动补全
    print(resp.json())  # 打印结果

with sync_playwright() as p:
    browser = p.chromium.launch(headless=False, channel="msedge") # 指定使用msedge浏览器,需要用其他的自行切换
    context = browser.new_context() # 新建上下文
    context.add_cookies(cookies) # 添加登录账号的cookies,可以用在抖音登录也可以在创作者中心登录
    page = context.new_page() # 新建页面
    page_load = False 
    while page_load == False:  # 等待5秒页面加载
        try:
            page.goto('https://creator.douyin.com/', timeout=5000) # 避免一直加载页面,自动刷新
            if page.url == 'https://creator.douyin.com/creator-micro/home': # 判断是否进入了抖音创作者服务中心
                page_load = True # 此处为真代表已经登录
            page_load = True # 此处为真代表已经进入创作者登录页
        except TimeoutError: # 如果超时证明cookie已经失效,需要手动重新登录
            pass

    login = False
    while login == False:  # 如果未登录
        try:
            page.wait_for_url(url="**/creator-micro/home",
                            wait_until='domcontentloaded',
                            timeout=10000)  # 等待10s判断是否进入主页面
        except TimeoutError:
            print("等待10s..")
            continue
        login = True # 登录成功
    get_user_info(page) # 获取用户信息
    page.pause() #暂停页面,可以进行其他手动操作,如果不需要可以删除

以上代码实现了读取已有的cookie尝试保持登录态,如果cookie失效,也能等待用户重新登录。

登录成功后能够直接使用浏览器,发送请求获取当前登录的用户信息,无需像平常那样补一堆参数到最后啥也干不成。

playwright操控的浏览器是通过websocket进行通信,启动的是真正的浏览器,几乎无法检测出使用了傀儡浏览器(应该)。

以上。内容仅供学习,不得进行违规违法操作。

赞赏

doupoa

文章作者

诶嘿

发表回复

textsms
account_circle
email

Ping通途说

对抗抖音X-Bogus、msToken新思路
0.前言 抖音为了对抗爬虫等非法访问行为,所有的网站均采用了JSVMP代码保护方案,以确保请求合法性及数据包完整有效性。所有的操作均在浏览器内部使用JS生成,若无法逆向X-Bogus及msTo…
扫描二维码继续阅读
2024-08-10

Optimized by WPJAM Basic