From 60cbb3e37df4921a89983f9ecb78e46d56016286 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A8=8B=E5=BA=8F=E5=91=98=E9=98=BF=E6=B1=9F=28Relakkes?= =?UTF-8?q?=29?= Date: Thu, 6 Nov 2025 19:43:09 +0800 Subject: [PATCH] fix: weibo container error #568 --- media_platform/weibo/client.py | 17 ++--------------- media_platform/weibo/core.py | 2 +- 2 files changed, 3 insertions(+), 16 deletions(-) diff --git a/media_platform/weibo/client.py b/media_platform/weibo/client.py index 08c82da..ec9f289 100644 --- a/media_platform/weibo/client.py +++ b/media_platform/weibo/client.py @@ -288,27 +288,14 @@ class WeiboClient: """ uri = "/api/container/getIndex" - container_info = await self.get_creator_container_info(creator_id) - if container_info.get("fid_container_id") == "" or container_info.get("lfid_container_id") == "": - utils.logger.error(f"[WeiboClient.get_creator_info_by_id] get containerid failed") - raise DataFetchError("get containerid failed") + containerid = f"100505{creator_id}" params = { "jumpfrom": "weibocom", "type": "uid", "value": creator_id, - "containerid": container_info["fid_container_id"], + "containerid":containerid, } - user_res = await self.get(uri, params) - - if user_res.get("tabsInfo"): - tabs: List[Dict] = user_res.get("tabsInfo", {}).get("tabs", []) - for tab in tabs: - if tab.get("tabKey") == "weibo": - container_info["lfid_container_id"] = tab.get("containerid") - break - - user_res.update(container_info) return user_res async def get_notes_by_creator( diff --git a/media_platform/weibo/core.py b/media_platform/weibo/core.py index 83c5a25..2b1ac9f 100644 --- a/media_platform/weibo/core.py +++ b/media_platform/weibo/core.py @@ -293,7 +293,7 @@ class WeiboCrawler(AbstractCrawler): # Get all note information of the creator all_notes_list = await self.wb_client.get_all_notes_by_creator_id( creator_id=user_id, - container_id=createor_info_res.get("lfid_container_id"), + container_id=f"107603{user_id}", crawl_interval=0, callback=weibo_store.batch_update_weibo_notes, )