From fb11a140406fa96acd6e3ec1fc910c9f58ddae5f Mon Sep 17 00:00:00 2001 From: Marvin Zhang Date: Thu, 30 May 2019 13:22:42 +0800 Subject: [PATCH] download results --- crawlab/routes/tasks.py | 2 +- crawlab/utils/spider.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/crawlab/routes/tasks.py b/crawlab/routes/tasks.py index 5b5bf640..a318803b 100644 --- a/crawlab/routes/tasks.py +++ b/crawlab/routes/tasks.py @@ -224,7 +224,7 @@ class TaskApi(BaseApi): if not col_name: return send_csv([], f'results_{col_name}_{round(time())}.csv') items = db_manager.list(col_name, {'task_id': id}, limit=999999999) - fields = get_spider_col_fields(col_name) + fields = get_spider_col_fields(col_name, task_id=id, limit=999999999) return send_csv(items, filename=f'results_{col_name}_{round(time())}.csv', fields=fields, diff --git a/crawlab/utils/spider.py b/crawlab/utils/spider.py index 9a2b48df..d8995028 100644 --- a/crawlab/utils/spider.py +++ b/crawlab/utils/spider.py @@ -41,12 +41,17 @@ def get_spider_type(path: str) -> SpiderType: return SpiderType.SCRAPY -def get_spider_col_fields(col_name: str) -> list: +def get_spider_col_fields(col_name: str, task_id: str = None, limit: int = 100) -> list: """ Get spider collection fields :param col_name: collection name + :param task_id: task_id + :param limit: limit """ - items = db_manager.list(col_name, {}, limit=100, sort_key='_id') + filter_ = {} + if task_id is not None: + filter_['task_id'] = task_id + items = db_manager.list(col_name, filter_, limit=limit, sort_key='_id') fields = set() for item in items: for k in item.keys():