使用TikTokApi爬取话题视频时遇JSONDecodeError报错求助
JSONDecodeError 爬取TikTok话题视频时循环环节出错
我使用非官方TikTokApi爬取TikTok话题「dogsoftiktok」的视频,但在遍历tag.videos()的for循环环节持续触发JSONDecodeError,无法正常打印视频ID。
代码示例
from TikTokApi import TikTokApi with TikTokApi() as api: tag = api.hashtag(name="dogsoftiktok") print(tag.info()) for video in tag.videos(): print(video.id)
错误信息
raise JSONDecodeError("Expecting value", s, err.value) from None json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
解决方案
升级TikTokApi到最新版本
旧版本可能存在接口兼容问题,执行以下命令升级:pip install --upgrade TikTokApi添加会话验证参数
TikTok当前要求验证会话才能获取数据,你需要从浏览器TikTok页面的Cookie中提取verifyFp值,添加到API初始化参数中:from TikTokApi import TikTokApi # 替换为你自己的verifyFp值 verify_fp = "your_verify_fp_value" with TikTokApi(custom_verify_fp=verify_fp) as api: tag = api.hashtag(name="dogsoftiktok") print(tag.info()) # 限制单次获取数量,降低反爬触发概率 for video in tag.videos(count=20): print(video.id)添加延迟与分批获取
TikTok有请求频率限制,建议在遍历视频时添加延迟,同时通过count参数分批获取数据:import time from TikTokApi import TikTokApi verify_fp = "your_verify_fp_value" with TikTokApi(custom_verify_fp=verify_fp) as api: tag = api.hashtag(name="dogsoftiktok") print(tag.info()) for video in tag.videos(count=20): print(video.id) time.sleep(1) # 每条间隔1秒,避免触发反爬机制捕获异常排查原始响应
如果问题仍存在,捕获异常并打印原始响应内容,确认返回数据是否为有效JSON:from TikTokApi import TikTokApi import json verify_fp = "your_verify_fp_value" with TikTokApi(custom_verify_fp=verify_fp) as api: tag = api.hashtag(name="dogsoftiktok") print(tag.info()) try: videos = tag.videos(count=20) for video in videos: print(video.id) except json.JSONDecodeError as e: # 打印原始响应,排查数据异常 print("原始响应内容:", api.last_response.content) print("错误详情:", str(e))
内容的提问来源于stack exchange,提问作者Khushi Patel
相关产品推荐
相关产品推荐

