From 62072e881eb3531df68f9fe6d8bdab03a4f00790 Mon Sep 17 00:00:00 2001 From: imgyh <1974355683@qq.com> Date: Mon, 20 Feb 2023 13:59:53 +0800 Subject: [PATCH] =?UTF-8?q?fix(tiktok):=20=E4=BF=AE=E5=A4=8D=E4=B8=BB?= =?UTF-8?q?=E9=A1=B5=E4=BD=9C=E5=93=81=E6=8E=A5=E5=8F=A3=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E4=B8=8D=E7=A8=B3=E5=AE=9A,=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0X-Bogus=E6=8E=A5=E5=8F=A3=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TikTok.py | 21 ++++++++++----------- TikTokUrls.py | 1 + TikTokUtils.py | 8 ++++---- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/TikTok.py b/TikTok.py index 5cc31cc..483a518 100644 --- a/TikTok.py +++ b/TikTok.py @@ -148,17 +148,16 @@ class TikTok(object): print("[ 错误 ]:模式选择错误, 仅支持post和like, 请检查后重新运行!\r") return None - try: - res = requests.get(url=url, headers=self.headers) - datadict = json.loads(res.text) - print('[ 提示 ]:本次请求返回 ' + str(len(datadict["aweme_list"])) + ' 条数据') - except Exception as e: - print("[ 错误 ]:接口未返回数据, 请检查后重新运行!\r") - return None - - if datadict["status_code"] != 0: - print("[ 错误 ]:接口返回状态码[" + datadict["status_code"] + "]异常, 请检查后重新运行!\r") - return None + while True: + # 接口不稳定, 有时服务器不返回数据, 需要重新获取 + try: + res = requests.get(url=url, headers=self.headers) + datadict = json.loads(res.text) + print('[ 提示 ]:本次请求返回 ' + str(len(datadict["aweme_list"])) + ' 条数据') + if datadict is not None and datadict["status_code"] == 0: + break + except Exception as e: + print("[ 警告 ]:接口未返回数据, 正在重新请求!\r") for aweme in datadict["aweme_list"]: # 获取 aweme_id diff --git a/TikTokUrls.py b/TikTokUrls.py index b5786b7..1add993 100644 --- a/TikTokUrls.py +++ b/TikTokUrls.py @@ -60,6 +60,7 @@ class Urls(object): self.FOLLOW_FEED = 'https://www.douyin.com/aweme/v1/web/follow/feed/?' # X-Bogus Path + # 60 秒内,请求同一URI累计超过 600 次,封锁IP 300 秒 self.GET_XB_PATH = 'https://tiktok.199933.xyz/xb' ####################################################################################### diff --git a/TikTokUtils.py b/TikTokUtils.py index 773d0a6..bef4109 100644 --- a/TikTokUtils.py +++ b/TikTokUtils.py @@ -55,11 +55,11 @@ class Utils(object): try: response = json.loads(requests.post( url= urls.GET_XB_PATH, data={"param" : url}, headers=headers).text) + params = response["param"] + xb = response["X-Bogus"] except Exception as e: - print('[ 错误 ]:%s' % e) - - params = response["param"] - xb = response["X-Bogus"] + print('[ 错误 ]:X-Bogus接口异常, 可能是访问流量高, 接口限流请稍等几分钟再次尝试') + return return params #, xb