From e92c6130e115d032e846ff4271ec720acc1dbed0 Mon Sep 17 00:00:00 2001 From: persist-1 Date: Sat, 6 Sep 2025 04:41:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(store):=20=E4=BF=AE=E5=A4=8D=E5=AD=98?= =?UTF-8?q?=E5=82=A8=E5=AE=9E=E7=8E=B0=E7=9A=84AsyncFileWriter=E5=AF=BC?= =?UTF-8?q?=E5=85=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 重构小红书存储实现,将store_comments方法改为处理单个评论的store_comment 为多个平台添加AsyncFileWriter工具类导入 --- store/kuaishou/_store_impl.py | 1 + store/tieba/_store_impl.py | 1 + store/weibo/_store_impl.py | 1 + store/xhs/_store_impl.py | 18 ++++++++---------- store/zhihu/_store_impl.py | 2 +- 5 files changed, 12 insertions(+), 11 deletions(-) diff --git a/store/kuaishou/_store_impl.py b/store/kuaishou/_store_impl.py index 3b1a477..1cb1d80 100644 --- a/store/kuaishou/_store_impl.py +++ b/store/kuaishou/_store_impl.py @@ -19,6 +19,7 @@ import json import os import pathlib from typing import Dict +from tools.async_file_writer import AsyncFileWriter import aiofiles from sqlalchemy import select diff --git a/store/tieba/_store_impl.py b/store/tieba/_store_impl.py index 3553945..80464dd 100644 --- a/store/tieba/_store_impl.py +++ b/store/tieba/_store_impl.py @@ -30,6 +30,7 @@ from database.models import TiebaNote, TiebaComment, TiebaCreator from tools import utils, words from database.db_session import get_session from var import crawler_type_var +from tools.async_file_writer import AsyncFileWriter def calculate_number_of_files(file_store_path: str) -> int: diff --git a/store/weibo/_store_impl.py b/store/weibo/_store_impl.py index e16d4bf..b27317f 100644 --- a/store/weibo/_store_impl.py +++ b/store/weibo/_store_impl.py @@ -28,6 +28,7 @@ import config from base.base_crawler import AbstractStore from database.models import WeiboCreator, WeiboNote, WeiboNoteComment from tools import utils, words +from tools.async_file_writer import AsyncFileWriter from database.db_session import get_session from var import crawler_type_var diff --git a/store/xhs/_store_impl.py b/store/xhs/_store_impl.py index 224ec42..9985900 100644 --- a/store/xhs/_store_impl.py +++ b/store/xhs/_store_impl.py @@ -32,14 +32,13 @@ class XhsCsvStoreImplement(AbstractStore): """ await self.writer.write_to_csv(item_type="contents", item=content_item) - async def store_comments(self, comments: List[Dict]): + async def store_comment(self, comment_item: Dict): """ - store comments data to csv file - :param comments: + store comment data to csv file + :param comment_item: :return: """ - for comment in comments: - await self.writer.write_to_csv(item_type="comments", item=comment) + await self.writer.write_to_csv(item_type="comments", item=comment_item) async def store_creator(self, creator_item: Dict): @@ -62,14 +61,13 @@ class XhsJsonStoreImplement(AbstractStore): """ await self.writer.write_single_item_to_json(item_type="contents", item=content_item) - async def store_comments(self, comments: List[Dict]): + async def store_comment(self, comment_item: Dict): """ - store comments data to json file - :param comments: + store comment data to json file + :param comment_item: :return: """ - for comment in comments: - await self.writer.write_single_item_to_json(item_type="comments", item=comment) + await self.writer.write_single_item_to_json(item_type="comments", item=comment_item) async def store_creator(self, creator_item: Dict): pass diff --git a/store/zhihu/_store_impl.py b/store/zhihu/_store_impl.py index a980d2a..9dfaf23 100644 --- a/store/zhihu/_store_impl.py +++ b/store/zhihu/_store_impl.py @@ -30,7 +30,7 @@ from database.db_session import get_session from database.models import ZhihuContent, ZhihuComment, ZhihuCreator from tools import utils, words from var import crawler_type_var - +from tools.async_file_writer import AsyncFileWriter def calculate_number_of_files(file_store_path: str) -> int: """计算数据保存文件的前部分排序数字,支持每次运行代码不写到同一个文件中