Johnserf-Seed / f2

High-speed downloader for multiple platforms
https://johnserf-seed.github.io/f2/
Apache License 2.0
313 stars 61 forks source link

[BUG] 获取抖音作品详情时返回空响应 #119

Closed iDataist closed 1 week ago

iDataist commented 1 week ago

详细描述错误 在运行脚本时,出现了多次响应内容为空的警告,但状态码为200。具体日志如下:

INFO     开始爬取作品:7136604718050135327
WARNING  第 1 次响应内容为空, 状态码: 200,
         URL:https://www.douyin.com/aweme/v1/web/aweme/detail/...
WARNING  第 2 次响应内容为空, 状态码: 200,
         URL:https://www.douyin.com/aweme/v1/web/aweme/detail/...

系统平台

单击展开 Q: 你在哪个平台(Win/Linux/Mac)上运行?你使用的是什么浏览器?你使用的是什么终端软件?你使用的F2是什么版本? A: - 操作系统: Windows 11 Pro - 浏览器: Firefox - 终端: Python 3.10.11 venv, Visual Studio Code - F2版本: 尝试了主分支和 v0.0.1.7-pw2,均出现相同错误

错误重现

单击展开 Q: 请你复制并粘贴出错时运行的命令和配置文件内容,以及重现该行为的步骤。如果你一次性就提供完整信息,就会节省很多解决问题的时间。 A: 用户发布作品数据接口没问题,但是单个作品数据 接口有问题。 1. 运行以下脚本: ```python import asyncio from f2.apps.douyin.handler import DouyinHandler kwargs = { "headers": { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0", "Referer": "https://www.douyin.com/", }, "cookie": "YOUR_COOKIE_HERE", "proxies": {"http://": None, "https://": None}, } async def main(): video = await DouyinHandler(kwargs).fetch_one_video(aweme_id="7136604718050135327") print("=================_to_raw================") print(video._to_raw()) # print("=================_to_dict================") # print(video._to_dict()) if __name__ == "__main__": asyncio.run(main()) ``` Q: 请添加调试命令`f2 -d DEBUG`重新运行出错的命令并提供日志目录下的日志文件。 A: Q: 如果是开发者请提供最小的代码示例 A:

预期行为 期望脚本能正确获取抖音作品的详细信息,而不是返回空响应。

屏幕截图

日志文件 请查看上文提供的日志内容。

其他

Johnserf-Seed commented 1 week ago

image

请使用该ua配置Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

zhengmingshao commented 1 week ago
image
Johnserf-Seed commented 1 week ago
image

94

iDataist commented 1 week ago

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

感谢如此迅速的答复, @Johnserf-Seed !我比对了一下您给出的UA设置和python脚本中的UA设置,是一致的。我把两个设置都拷贝在下面。在没有改动代码和其他任何环境的条件下,现在没有空响应的情况。也就是说十个小时之前是空响应,但是现在就没问题。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

Johnserf-Seed commented 1 week ago

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

感谢如此迅速的答复, @Johnserf-Seed !我比对了一下您给出的UA设置和python脚本中的UA设置,是一致的。我把两个设置都拷贝在下面。在没有改动代码和其他任何环境的条件下,现在没有空响应的情况。也就是说十个小时之前是空响应,但是现在就没问题。

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0.0.0 Safari/537.36 Edg/126.0.0.0

那么问题应该在于cookie或ip被风控了,可能需要你更多测试 ;)

iDataist commented 1 week ago

明白了,感谢提供这个思路,@Johnserf-Seed!

iDataist commented 1 week ago

@Johnserf-Seed,请问风控是否对不同的接口有不同的影响?我现在观察到,用户发布作品的数据接口正常,下载视频也正常,但单个作品的数据接口存在问题。这是因为风控只针对某个特定接口吗?

zhengmingshao commented 1 week ago

@iDataist cookie都不正常呢