【python】最新版抖音js逆向拿到数据,非常详细教程(附完整代码)

时间:2025-02-19 07:06:43
import requests import urllib.parse from functools import partial # 这玩意能锁定一个函数的参数 import subprocess # 锁定的encoding参数为"utf-8" subprocess.Popen = partial(subprocess.Popen, encoding="utf-8") # 解决execjs执行js时产生的乱码报错, 需要在导入该模块之前, 让Popen的encoding参数锁定为utf-8 import execjs cookies = { '__ac_nonce': '0667e56e2004ca7be709d', '__ac_signature': '_02B4Z6wo00f01F7gCHgAAIDDY0kS5D7x2bhewAzAAHHN77', 'ttwid': '1%7CSoyGfiW3YIrWehLxRkFXno6ivolsH4lknKZPFVCANB4%7C1719555811%7Ca9719b801cbae2a00413146f05768d8c634df943784af9a38db9f15aceaf674d', 'UIFID_TEMP': 'f670781d5233033367a4d99498efe9bd14a45e82156a15d1881178acac831acfc3b76208ba25a79581181b3d9b7f6fd8790436616b115455687712ed6e934e819565d6d28f51f2f1727dc4f41b7cd928', 's_v_web_id': 'verify_lxyb4soy_WnXlLGA3_UgM1_4TyE_ALG8_FSWMPquX0c9h', 'dy_swidth': '1920', 'dy_sheight': '1080', 'csrf_session_id': 'aed7eadbd76247fd202ee1ad2051ee3f', 'strategyABtestKey': '%221719555813.291%22', 'msToken': 'aMAJwH-yPdclT6oY0QB2nMN5zCevTQSdFzoc95Y6gb2Akh7ouSlRcajqvf2a6FO0Ne5GGIo7C-eKPQg70tY7-5W1cpP8kTOBo9eZz5c=', 'fpk1': 'U2FsdGVkX1+uNmlwtIj7vUBYMI5gSpCVwjwy4xLQrNBqAAzRl1v7ZfGTOciWl98nNbgujArYeguzH+jBT+HuKA==', 'fpk2': '9c1ce27f08b16479d2e17743062b28ed', 'passport_csrf_token': '774b3c57f40ce468bcab9aef1997a8e0', 'passport_csrf_token_default': '774b3c57f40ce468bcab9aef1997a8e0', 'bd_ticket_guard_client_data': 'eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTzV0ZVJsdnIxOWtOb2FCT0F5dFZOTHpqa200UmNMOEk5eUFTUmRVWDBpRnRndzNQZHVqTmNTc2lGWDRaZlFmWUcyNHFERm4rU0Fab1JKRUE1YWl6bzQ9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D', 'bd_ticket_guard_client_web_domain': '2', 'FORCE_LOGIN': '%7B%22videoConsumedRemainSeconds%22%3A180%7D', 'download_guide': '%221%2F20240628%2F0%22', 'pwa2': '%220%7C0%7C1%7C0%22', 'UIFID': 'f670781d5233033367a4d99498efe9bd14a45e82156a15d1881178acac831acfc3b76208ba25a79581181b3d9b7f6fd8c65a2050d01ebdf6e5286e64f9b1f05ea748080de99e9551be7a8a0fdea38acca12971e9af16496830b10b68251f26ae0d3337ac0f80bb962d3a15ef775c36be352dcab16cc0f6337362be767e291c640bac5c403945f88a4bed4c33fe55c84628ff943716b4c377f6af7faa1774106f', 'IsDouyinActive': 'true', 'home_can_add_dy_2_desktop': '%220%22', 'stream_recommend_feed_params': '%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A100%7D%22', } headers = { 'authority': '', 'accept': 'application/json, text/plain, */*', 'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8', 'cache-control': 'no-cache', # 'cookie': '__ac_nonce=0667e56e2004ca7be709d; __ac_signature=_02B4Z6wo00f01F7gCHgAAIDDY0kS5D7x2bhewAzAAHHN77; ttwid=1%7CSoyGfiW3YIrWehLxRkFXno6ivolsH4lknKZPFVCANB4%7C1719555811%7Ca9719b801cbae2a00413146f05768d8c634df943784af9a38db9f15aceaf674d; UIFID_TEMP=f670781d5233033367a4d99498efe9bd14a45e82156a15d1881178acac831acfc3b76208ba25a79581181b3d9b7f6fd8790436616b115455687712ed6e934e819565d6d28f51f2f1727dc4f41b7cd928; s_v_web_id=verify_lxyb4soy_WnXlLGA3_UgM1_4TyE_ALG8_FSWMPquX0c9h; dy_swidth=1920; dy_sheight=1080; csrf_session_id=aed7eadbd76247fd202ee1ad2051ee3f; strategyABtestKey=%221719555813.291%22; msToken=aMAJwH-yPdclT6oY0QB2nMN5zCevTQSdFzoc95Y6gb2Akh7ouSlRcajqvf2a6FO0Ne5GGIo7C-eKPQg70tY7-5W1cpP8kTOBo9eZz5c=; fpk1=U2FsdGVkX1+uNmlwtIj7vUBYMI5gSpCVwjwy4xLQrNBqAAzRl1v7ZfGTOciWl98nNbgujArYeguzH+jBT+HuKA==; fpk2=9c1ce27f08b16479d2e17743062b28ed; passport_csrf_token=774b3c57f40ce468bcab9aef1997a8e0; passport_csrf_token_default=774b3c57f40ce468bcab9aef1997a8e0; bd_ticket_guard_client_data=eyJiZC10aWNrZXQtZ3VhcmQtdmVyc2lvbiI6MiwiYmQtdGlja2V0LWd1YXJkLWl0ZXJhdGlvbi12ZXJzaW9uIjoxLCJiZC10aWNrZXQtZ3VhcmQtcmVlLXB1YmxpYy1rZXkiOiJCTzV0ZVJsdnIxOWtOb2FCT0F5dFZOTHpqa200UmNMOEk5eUFTUmRVWDBpRnRndzNQZHVqTmNTc2lGWDRaZlFmWUcyNHFERm4rU0Fab1JKRUE1YWl6bzQ9IiwiYmQtdGlja2V0LWd1YXJkLXdlYi12ZXJzaW9uIjoxfQ%3D%3D; bd_ticket_guard_client_web_domain=2; FORCE_LOGIN=%7B%22videoConsumedRemainSeconds%22%3A180%7D; download_guide=%221%2F20240628%2F0%22; pwa2=%220%7C0%7C1%7C0%22; UIFID=f670781d5233033367a4d99498efe9bd14a45e82156a15d1881178acac831acfc3b76208ba25a79581181b3d9b7f6fd8c65a2050d01ebdf6e5286e64f9b1f05ea748080de99e9551be7a8a0fdea38acca12971e9af16496830b10b68251f26ae0d3337ac0f80bb962d3a15ef775c36be352dcab16cc0f6337362be767e291c640bac5c403945f88a4bed4c33fe55c84628ff943716b4c377f6af7faa1774106f; IsDouyinActive=true; home_can_add_dy_2_desktop=%220%22; stream_recommend_feed_params=%22%7B%5C%22cookie_enabled%5C%22%3Atrue%2C%5C%22screen_width%5C%22%3A1920%2C%5C%22screen_height%5C%22%3A1080%2C%5C%22browser_online%5C%22%3Atrue%2C%5C%22cpu_core_num%5C%22%3A12%2C%5C%22device_memory%5C%22%3A8%2C%5C%22downlink%5C%22%3A10%2C%5C%22effective_type%5C%22%3A%5C%224g%5C%22%2C%5C%22round_trip_time%5C%22%3A100%7D%22', 'pragma': 'no-cache', 'referer': '/user/MS4wLjABAAAAQERLUS1XLl1qZMZDkibRWUdHGBAoG0pJq_5hAj3XjIZXnxgtW_CcE17nuHHfikpQ', 'sec-ch-ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"', 'sec-ch-ua-mobile': '?0', 'sec-ch-ua-platform': '"Windows"', 'sec-fetch-dest': 'empty', 'sec-fetch-mode': 'cors', 'sec-fetch-site': 'same-origin', 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36', } params = { 'device_platform': 'webapp', 'aid': '6383', 'channel': 'channel_pc_web', # 'sec_user_id': 'MS4wLjABAAAAQERLUS1XLl1qZMZDkibRWUdHGBAoG0pJq_5hAj3XjIZXnxgtW_CcE17nuHHfikpQ', 'sec_user_id': 'MS4wLjABAAAAMbqnWxzUfZegt9vrNBDz7zyqwhvG6vXiKTDxVm2wUD0', 'max_cursor': '0', 'locate_query': 'false', 'show_live_replay_strategy': '1', 'need_time_list': '1', 'time_list_query': '0', 'whale_cut_token': '', 'cut_version': '1', 'count': '18', 'publish_video_strategy_type': '2', 'update_version_code': '170400', 'pc_client_type': '1', 'version_code': '290100', 'version_name': '29.1.0', 'cookie_enabled': 'true', 'screen_width': '1920', 'screen_height': '1080', 'browser_language': 'zh-CN', 'browser_platform': 'Win32', 'browser_name': 'Chrome', 'browser_version': '120.0.0.0', 'browser_online': 'true', 'engine_name': 'Blink', 'engine_version': '120.0.0.0', 'os_name': 'Windows', 'os_version': '10', 'cpu_core_num': '12', 'device_memory': '8', 'platform': 'PC', 'downlink': '10', 'effective_type': '4g', 'round_trip_time': '100', 'webid': '7385435910345786890', 'msToken': '9G8o1cfOgnmTmftueqvwDPDIQUCfacV7cf6kfP69MLKzBWuKJq_7UeDNu0nFJeBx1LieJVpw4VfKQXRgEbpko2NSyiXATFMPvKdjjUU053K3ynhGid5o', 'verifyFp': 'verify_lxyb4soy_WnXlLGA3_UgM1_4TyE_ALG8_FSWMPquX0c9h', 'fp': 'verify_lxyb4soy_WnXlLGA3_UgM1_4TyE_ALG8_FSWMPquX0c9h', } #将字典转换为字符串参数 params_str = urllib.parse.urlencode(params) print(params_str) a_bogus = execjs.compile(open("",encoding='utf-8').read()).call("geta_bogus", params_str) print("a_bogus:::",a_bogus) params["a_bogus"] = a_bogus response = requests.get('/aweme/v1/web/aweme/post/', params=params, cookies=cookies, headers=headers) print("得到的结果",response.text)