Tiktok_Signature icon indicating copy to clipboard operation
Tiktok_Signature copied to clipboard

使用ttwid和X-Bogus查询出来关键词列表是空的

Open Openover-zh opened this issue 1 year ago • 1 comments

  • 使用ttwid和X-Bogus查询出来关键词列表是空的,大佬可以帮忙看下嘛,接口https://www.douyin.com/aweme/v1/web/general/search/single/ 判断可能是cookie的问题,但没有找到具体原因。
# !/usr/bin/env python
# -*- encoding: utf-8 -*-

import requests, random, urllib.parse


def get_ttwid():
    """
    ttwid生成
    """
    data = {"region": "cn", "aid": 6383, "needFid": False, "service": "www.ixigua.com",
            "migrate_info": {"ticket": "", "source": "node"}, "cbUrlProtocol": "https", "union": True}
    headers = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36',
    }
    url = "https://ttwid.bytedance.com/ttwid/union/register/"
    res = requests.post(url, json=data)
    # 获取headers中的ttwid
    cookie = res.headers['Set-Cookie']
    # print(cookie)
    ttwid = cookie.split(' ')[0]
    # print(ttwid)
    # 去掉ttwid=,ttwid后面的分号
    ttwid = ttwid.replace("ttwid=", "").replace(";", "")

    return ttwid


def generate_random_str(randomlength=107):
    """
    根据传入长度产生随机字符串
    :param randomlength: 随机字符串长度
    """
    random_str = ''
    base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789='
    length = len(base_str) - 1
    for _ in range(randomlength):
        random_str += base_str[random.randint(0, length)]

    return random_str


def get_x_bogus(url):
    """
    X-Bogus生成
    param url: 参数中的url
    """
    data = {
        "url": url,
        "user_agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
        "Referer": "https://www.douyin.com/"
    }
    # postUrl = "http://127.0.0.1:8787/X-Bogus"
    postUrl = "https://tiktok.iculture.cc/X-Bogus"
    res = requests.post(postUrl, json=data)
    return res.json()


def main():
    odin_tt = "96c6362a1ac61572d7b175aa3671e30c521cefdce0b0d620c2b4c0170cf86217"
    ttwid = get_ttwid()
    msToken = generate_random_str()
    bd_ticket_guard_client_data = "eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWNsaWVudC1jc3IiOiItLS0tLUJFR0lOIENFUlRJRklDQVRFIFJFUVVFU1QtLS0tLVxyXG5NSUlCRFRDQnRRSUJBREFuTVFzd0NRWURWUVFHRXdKRFRqRVlNQllHQTFVRUF3d1BZbVJmZEdsamEyVjBYMmQxXHJcbllYSmtNRmt3RXdZSEtvWkl6ajBDQVFZSUtvWkl6ajBEQVFjRFFnQUVKUDZzbjNLRlFBNUROSEcyK2F4bXAwNG5cclxud1hBSTZDU1IyZW1sVUE5QTZ4aGQzbVlPUlI4NVRLZ2tXd1FJSmp3Nyszdnc0Z2NNRG5iOTRoS3MvSjFJc3FBc1xyXG5NQ29HQ1NxR1NJYjNEUUVKRGpFZE1Cc3dHUVlEVlIwUkJCSXdFSUlPZDNkM0xtUnZkWGxwYmk1amIyMHdDZ1lJXHJcbktvWkl6ajBFQXdJRFJ3QXdSQUlnVmJkWTI0c0RYS0c0S2h3WlBmOHpxVDRBU0ROamNUb2FFRi9MQnd2QS8xSUNcclxuSURiVmZCUk1PQVB5cWJkcytld1QwSDZqdDg1czZZTVNVZEo5Z2dmOWlmeTBcclxuLS0tLS1FTkQgQ0VSVElGSUNBVEUgUkVRVUVTVC0tLS0tXHJcbiJ9"

    url = "https://www.douyin.com/aweme/v1/web/general/search/single/?device_platform=webapp&aid=6383&channel=channel_pc_web&search_channel=aweme_general&sort_type=0&publish_time=0&keyword=%E5%8E%84%E6%96%90%E7%90%89%E6%96%AF%E5%8D%A1%E4%B8%89%E5%88%80&search_source=normal_search&query_correct_type=1&is_filter_search=0&from_group_id=&offset=0&count=15&pc_client_type=1&version_code=190600&version_name=19.6.0&cookie_enabled=true&screen_width=1920&screen_height=1080&browser_language=zh-CN&browser_platform=MacIntel&browser_name=Chrome&browser_version=114.0.0.0&browser_online=true&engine_name=Blink&engine_version=114.0.0.0&os_name=Mac+OS&os_version=10.15.7&cpu_core_num=8&device_memory=8&platform=PC&downlink=5.2&effective_type=4g&round_trip_time=250&webid=7234455109030135296"
    # msToken
    url = url + "&msToken=" + msToken

    res = get_x_bogus(url)

    url = res['param']
    xBogus = res['X-Bogus']
    # #url 后面加msToken

    print(url, xBogus)

    headers = {
        "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",
        "Referer": "https://www.douyin.com/",
        "Cookie": f"msToken={msToken};ttwid={ttwid};passport_csrf_token=042487bb53a6be39288681442c9c0b79;passport_csrf_token_default=042487bb53a6be39288681442c9c0b79;__ac_signature=_02B4Z6wo00f01ZpabpgAAIDCyi0qYxUwfMmaemoAAAIYCjfqrLBvvH16dJEuiZQKPIdp5.5-KxRfRrjwKYL2Se5aXopbua1p.HbiUIDe2FJ2Mbak5qlu7LvLMDKv-6LUft.fufdUee5WXjjga1;LOGIN_STATUS=0;odin_tt={odin_tt};tt_scid=e6mq8ADwPUb-Z2GLj7dtviRhibMq0MbncrDgoqLgJJ-q84TK2c9.dxtNni9hlAHcb610;sid_tt=12e1d5a11ade9a71600d7d2ef8e67edc",
    }

    # print(headers)
    # #请求抖音接口

    res = requests.get(url, headers=headers)

    print("结果", res.text)


if __name__ == '__main__':
    main()

Openover-zh avatar Jun 08 '23 07:06 Openover-zh