Evil0ctal / Douyin_TikTok_Download_API

🚀「Douyin_TikTok_Download_API」是一个开箱即用的高性能异步抖音、快手、TikTok、Bilibili数据爬取工具,支持API调用,在线批量解析及下载。
https://douyin.wtf
Apache License 2.0
7.7k stars 1.22k forks source link

[BUG] fetch_user_post_videos这个方法今天测试翻页请求失败,目前只能获取第一页 #432

Open iicey opened 2 weeks ago

iicey commented 2 weeks ago

发生错误的平台?

抖音

发生错误的端点?

web

提交的输入值?

获取用户发布作品数据

sec_user_id = "MS4wLjABAAAAHqO2fBYAlLv3oSWBJlNNO_rG_dMvkOYuvrwuQunIFOg" max_cursor = 1718692959000 # 翻页参数 count = 10 result = await self.fetch_user_post_videos(sec_user_id, max_cursor, count) print(result)

是否有再次尝试?

昨天还是正常的,今天一直不能正常翻页失败

你有查看本项目的自述文件或接口文档吗?

有的。

以下是提升信息: 程序出现异常,请检查错误信息。 ERROR 请求Douyin msToken API时发生错误:响应内容:None, Douyin msToken API
的响应内容不符合要求。
INFO 将使用本地生成的虚假msToken参数,以继续请求。
程序出现异常,请检查错误信息。 ERROR 请求Douyin msToken API时发生错误:响应内容:None, Douyin msToken API
的响应内容不符合要求。
INFO 将使用本地生成的虚假msToken参数,以继续请求。
WARNING 第 1 次响应内容为空, 状态码: 200,
URL:https://www.douyin.com/aweme/v1/web/aweme/post/?device_platform=web app&aid=6383……

iicey commented 2 weeks ago

我有在config.yml文件中输入了自己的Cookie和msToken

Evil0ctal commented 2 weeks ago

可能是你的cookie出验证码了,也有可能是你用的游客cookie。

iicey commented 2 weeks ago

可能是你的cookie出验证码了,也有可能是你用的游客cookie。

是登录后的cookie,刚刚打开网页查看用户作品列表,是没有出现验证码的

iicey commented 2 weeks ago

补充信息:fetch_video_comments这个方法可以正常翻页

Canqiang commented 2 weeks ago

我也遇到同样的问题

iicey commented 2 weeks ago

TikHub.io 平台的 /api/v1/douyin/web/fetch_user_post_videos API现在能正常翻页吗?做业务开发需要稳定接入

iicey commented 2 weeks ago

以下是我把a_bogus生成方法拿出来单独测试的,params中两组参数分别来自Chrome和Firefox,测试结果都是只能获取第一页,翻页响应内容为空字符。测试前代码中的Cookie需要更换成自己的。

import os
from urllib.parse import urlencode

import requests

from utils import BogusManager

headers = {
    'Accept': '*/*',
    'Connection': 'keep-alive',
    'Accept-Language': 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36',
    'Referer': 'https://www.douyin.com/',
    'Cookie': '',
}

params = {
    'device_platform': 'webapp',
    'aid': '6383',
    'channel': 'channel_pc_web',
    'sec_user_id': 'MS4wLjABAAAAHqO2fBYAlLv3oSWBJlNNO_rG_dMvkOYuvrwuQunIFOg',
    'max_cursor': '0',
    'locate_query': 'false',
    'show_live_replay_strategy': '1',
    'need_time_list': '0',
    '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': '1200',
    'browser_language': 'zh-CN',
    'browser_platform': 'MacIntel',
    'browser_name': 'Chrome',
    'browser_version': '125.0.0.0',
    'browser_online': 'true',
    'engine_name': 'Blink',
    'engine_version': '125.0.0.0',
    'os_name': 'Mac OS',
    'os_version': '10.15.7',
    'cpu_core_num': '8',
    'device_memory': '8',
    'platform': 'PC',
    'downlink': '10',
    'effective_type': '4g',
    'round_trip_time': '100',
    'webid': '7211111841786267171',
    'msToken': '',
    # 'verifyFp': 'verify_lxb7h4p4_Vojnoeup_iXJa_4hkx_8l0N_kkvXt4Msjp7X',
    # 'fp': 'verify_lxb7h4p4_Vojnoeup_iXJa_4hkx_8l0N_kkvXt4Msjp7X',

    # 'device_platform': 'webapp',
    # 'aid': '6383',
    # 'channel': 'channel_pc_web',
    # 'pc_client_type': '1',
    # 'version_code': '190500',
    # 'version_name': '19.5.0',
    # 'cookie_enabled': 'true',
    # 'screen_width': '1920',
    # 'screen_height': '1080',
    # 'browser_language': 'zh-CN',
    # 'browser_platform': 'Win32',
    # 'browser_name': 'Firefox',
    # 'browser_version': '124.0',
    # 'browser_online': 'true',
    # 'engine_name': 'Gecko',
    # 'engine_version': '122.0.0.0',
    # 'os_name': 'Windows',
    # 'os_version': '10',
    # 'cpu_core_num': '12',
    # 'device_memory': '8',
    # 'platform': 'PC',
    # 'msToken': '',
    # 'max_cursor': '0',
    # 'count': '10',
    # 'sec_user_id': 'MS4wLjABAAAAHqO2fBYAlLv3oSWBJlNNO_rG_dMvkOYuvrwuQunIFOg',
}
# os.environ['https_proxy'] = 'http://127.0.0.1:8888'
os.environ['https_proxy'] = ''
a_bogus = BogusManager.ab_model_2_endpoint(params, headers["User-Agent"])

url = f"https://www.douyin.com/aweme/v1/web/aweme/post/?{urlencode(params)}&a_bogus={a_bogus}"
response = requests.get(url, headers=headers)
print(response.text)
print(response.status_code)
ganlnyn0000 commented 1 week ago

好像有的可以,有的不可以,但绝大多数都不可以,我试了这个sec_uid=MS4wLjABAAAAnxPDuYVwnO1uJUwroqV2DZLSmeurgphAzIu8lOai7Yh7tRa22OveixWCscA-Ze0Q就可以,貌似这个sec_uid有点不一样,就是长度要长一些

iicey commented 1 week ago

好像有的可以,有的不可以,但绝大多数都不可以,我试了这个sec_uid=MS4wLjABAAAAnxPDuYVwnO1uJUwroqV2DZLSmeurgphAzIu8lOai7Yh7tRa22OveixWCscA-Ze0Q就可以,貌似这个sec_uid有点不一样,就是长度要长一些

测了,还真是这样

ganlnyn0000 commented 1 week ago

@Evil0ctal 这个问题能解决一下么,谢谢!