From 2980490444822afec9071717f5504b2a3485481c Mon Sep 17 00:00:00 2001 From: Evil0ctal Date: Mon, 16 Sep 2024 00:08:51 -0700 Subject: [PATCH] =?UTF-8?q?=F0=9F=94=A7:=20Use=20retry=20to=20increase=20s?= =?UTF-8?q?tability=20of=20TikTok=20APP=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- crawlers/tiktok/app/app_crawler.py | 4 ++++ requirements.txt | 3 ++- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/crawlers/tiktok/app/app_crawler.py b/crawlers/tiktok/app/app_crawler.py index ffb6ecb..21cae73 100644 --- a/crawlers/tiktok/app/app_crawler.py +++ b/crawlers/tiktok/app/app_crawler.py @@ -43,6 +43,9 @@ from crawlers.base_crawler import BaseCrawler from crawlers.tiktok.app.endpoints import TikTokAPIEndpoints from crawlers.utils.utils import model_to_query_string +# 重试机制 +from tenacity import * + # TikTok接口数据请求模型 from crawlers.tiktok.app.models import ( BaseRequestModel, FeedVideoDetail @@ -79,6 +82,7 @@ class TikTokAPPCrawler: # 获取单个作品数据 # @deprecated("TikTok APP fetch_one_video is deprecated and will be removed in a future release. Use Web API instead. | TikTok APP fetch_one_video 已弃用,将在将来的版本中删除。请改用Web API。") + @retry(stop=stop_after_attempt(10), wait=wait_fixed(1)) async def fetch_one_video(self, aweme_id: str): # 获取TikTok的实时Cookie kwargs = await self.get_tiktok_headers() diff --git a/requirements.txt b/requirements.txt index 77f07f6..bdd5079 100644 --- a/requirements.txt +++ b/requirements.txt @@ -34,4 +34,5 @@ ua-parser==0.18.0 user-agents==2.2.0 uvicorn==0.29.0 websockets==12.0 -gmssl==3.2.2 \ No newline at end of file +gmssl==3.2.2 +tenacity~=9.0.0 \ No newline at end of file