日誌查看 - 20251014_15.log
文件大小: 298.43 KB 最後修改: 2025-10-14 16:01:09
2025-10-14 15:00:58 - 初始化新小時日誌檔案 2025-10-14 15:00:58 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251014_15.log 2025-10-14 15:00:58 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-14 15:01:00 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251014_15.log 2025-10-14 15:01:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-14 15:01:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 74, UID: 1k9oglnji7, 進度: 21/21 2025-10-14 15:01:04 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251014_15.log 2025-10-14 15:01:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-14 15:01:04 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251014_15.log 2025-10-14 15:01:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-14 15:01:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:01:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:01:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:01:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:01:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:01:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:01:07 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:01:07 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.984秒 2025-10-14 15:01:07 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 8.034秒 2025-10-14 15:01:07 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-14 15:01:07 - INFO - main - [url_processor.py:390] - process_url - 子頁面 20 購物車判斷: 有購物車功能 2025-10-14 15:01:07 - INFO - main - [url_processor.py:402] - process_url - 最終購物車判斷結果: 有購物車功能 (檢查了 21 個頁面) 2025-10-14 15:01:07 - INFO - main - [url_processor.py:423] - process_url - 審核通過:21 個頁面通過,0 個頁面被模型拒審(已忽略) 2025-10-14 15:01:07 - INFO - main - [helpers.py:223] - _find_email_in_content - 找到電子郵件 wednesdaystudio2022@gmail.com (完全匹配) 2025-10-14 15:01:07 - INFO - main - [url_processor.py:525] - process_url - URL ID 74 是 UI 提交,使用 URL 記錄中的聯絡資訊進行驗證 2025-10-14 15:01:07 - INFO - main - [helpers.py:223] - _find_email_in_content - 找到電子郵件 wednesdaystudio2022@gmail.com (完全匹配) 2025-10-14 15:01:07 - INFO - main - [url_processor.py:545] - process_url - UI審核(URL ID=74):身份驗證通過 2025-10-14 15:01:07 - INFO - database - [database.py:505] - update_url_status - URL ID 74 状态已更新为 completed 2025-10-14 15:01:07 - INFO - main - [url_processor.py:609] - process_url - URL ID 74 分析完成,結果: pass, API驗證: False 2025-10-14 15:01:07 - INFO - main - [url_processor.py:634] - process_url - 工作線程 #1 完成處理 URL ID: 74 2025-10-14 15:01:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:01:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:01:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 74, UID: 1k9oglnji7, 進度: 21/21 2025-10-14 15:01:13 - ERROR - main - [web_routes.py:200] - result - 显示结果页面失败: No test named '購物車功能:'. Traceback (most recent call last): File "/opt/urlanalyze/routes/web_routes.py", line 197, in result return render_template('result.html', result=result_dict, api_info=api_info, ui_info=ui_info, violations=violations, TAIPEI_TIMEZONE=TAIPEI_TIMEZONE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/templating.py", line 150, in render_template return _render(app, template, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/templating.py", line 131, in _render rv = template.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 1295, in render self.environment.handle_exception() File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 942, in handle_exception raise rewrite_traceback_stack(source=source) File "/opt/urlanalyze/templates/result.html", line 1, in top-level template code {% extends "base.html" %} File "/opt/urlanalyze/templates/base.html", line 59, in top-level template code {% block content %}{% endblock %} ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/templates/result.html", line 69, in block 'content' {% set cart_line = result.details.split('\n') | selectattr('contains', '購物車功能:') | list | first %} ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/async_utils.py", line 48, in wrapper return normal_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1365, in sync_do_list return list(value) ^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1798, in select_or_reject if func(item): ^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1783, in <lambda> return lambda item: modfunc(func(transfunc(item))) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1778, in func return context.environment.call_test(name, item, args, kwargs, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 594, in call_test return self._filter_test_common( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 526, in _filter_test_common raise TemplateRuntimeError(msg) jinja2.exceptions.TemplateRuntimeError: No test named '購物車功能:'. 2025-10-14 15:02:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:02:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:02:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:02:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:02:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:02:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:02:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:02:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:02:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:02:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:02:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:02:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:02:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:02:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:02:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:02:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:02:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:02:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:02:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:02:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:03:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:03:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:03:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:03:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:03:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:03:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:03:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:03:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:03:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:03:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:03:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:03:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:04:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:04:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:04:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:04:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:04:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:04:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:04:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:04:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:05:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:05:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:05:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:05:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:05:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:05:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:05:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:05:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:05:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:05:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:05:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:05:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:05:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:05:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:05:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:05:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:05:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:05:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:05:58 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:05:58 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:06:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:06:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:06:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:06:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:06:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:06:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:06:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:06:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:06:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:06:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:06:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:06:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-14 15:06:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:06:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-14 15:06:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:06:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:06:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:06:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:07:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:07:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:07:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:07:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:07:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:07:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:07:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:07:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:08:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:08:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:08:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:08:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:08:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:08:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:08:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:08:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:08:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:08:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:08:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:08:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:08:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:08:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:08:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:08:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:08:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:08:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:08:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:08:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:09:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:09:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:09:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:09:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:09:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:09:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:09:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:09:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:09:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:09:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:09:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:09:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:09:50 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:09:50 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:09:50 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:09:50 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:09:50 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:09:50 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:09:51 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:09:51 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:10:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:10:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:10:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:10:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:10:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:10:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:10:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:10:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:10:59 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:10:59 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:11:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:11:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:11:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:11:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:11:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:11:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:11:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:11:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:11:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:11:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:11:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:11:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:11:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:11:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:11:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:11:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:11:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:11:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:11:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:11:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:11:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:11:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:11:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:11:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:11:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:11:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-14 15:12:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:12:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:12:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:12:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:12:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:12:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:12:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:12:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:12:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:12:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:12:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:12:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:13:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:13:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:13:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:13:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:13:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:13:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:13:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:13:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:14:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:14:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:14:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:14:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:14:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:14:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:14:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:14:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:14:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:14:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:14:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:14:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:14:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:14:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:14:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:14:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:14:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:14:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:15:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:15:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:15:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:15:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:15:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:15:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:15:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:15:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:15:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:15:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:15:59 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:15:59 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:16:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:16:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:16:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:16:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:16:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:16:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:16:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:16:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:16:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:16:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:16:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:16:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:16:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:16:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:17:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:17:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:17:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:17:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:17:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:17:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:17:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:17:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:17:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:17:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:17:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:17:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:17:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:17:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:17:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:17:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:17:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:17:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:18:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:18:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:18:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:18:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:18:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:18:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:18:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:18:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:18:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:18:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:18:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:18:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:19:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:19:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:19:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:19:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:19:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:19:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:19:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:19:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:20:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:20:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:20:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:20:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:20:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:20:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:20:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:20:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:20:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:20:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:20:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:20:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:20:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:20:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:20:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:20:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:20:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:20:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:20:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:20:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:21:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:21:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:21:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:21:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:21:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:21:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:21:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:21:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:21:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:21:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:21:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:21:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-14 15:21:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-14 15:21:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-14 15:21:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:21:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-14 15:21:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:21:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:21:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:21:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:22:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:22:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:22:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:22:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:22:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:22:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:22:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:22:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:23:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:23:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:23:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:23:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:23:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:23:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:23:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:23:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:23:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:23:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:23:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:23:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:23:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:23:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:23:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:23:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:23:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:23:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:23:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:23:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:24:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:24:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:24:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:24:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:24:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:24:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:24:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:24:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:24:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:24:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:24:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:24:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:25:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:25:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:25:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:25:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:25:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:25:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:26:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:26:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:26:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:26:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:26:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:26:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:26:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:26:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:26:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:26:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:26:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:26:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:26:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:26:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:26:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:26:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:26:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:26:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:26:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:26:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:26:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:26:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:26:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:26:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:26:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:26:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-14 15:27:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:27:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:27:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:27:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:27:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:27:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:27:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:27:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:27:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:27:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:27:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:27:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:28:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:28:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:28:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:28:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:28:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:28:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:28:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:28:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:29:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:29:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:29:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:29:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:29:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:29:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:29:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:29:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:29:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:29:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:29:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:29:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:29:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:29:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:29:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:29:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:29:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:29:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:30:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:30:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:30:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:30:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:30:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:30:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:30:18 - INFO - database - [database.py:420] - process_url - UI 提交生成 UID: q42qv1vdwc 2025-10-14 15:30:18 - INFO - database - [database.py:426] - process_url - UI 提交 URL https://gululuart.com/pages/contact,結果將立即顯示 2025-10-14 15:30:18 - INFO - main - [web_routes.py:115] - submit_url - UI 提交,URL ID: 75, Phone: 0900111640, Email: happygululu@gmail.com 2025-10-14 15:30:18 - INFO - database - [database.py:536] - get_pending_url - 找到待处理的 URL: ID=75, URL=https://gululuart.com/pages/contact 2025-10-14 15:30:18 - INFO - main - [request_processor.py:690] - process_pending_urls - 已添加 1 個 URL 到處理隊列 2025-10-14 15:30:18 - INFO - main - [url_processor.py:42] - process_url - 工作線程 #1 開始處理 URL ID: 75 2025-10-14 15:30:18 - INFO - main - [url_processor.py:83] - process_url - 分析 URL: https://gululuart.com/pages/contact 2025-10-14 15:30:18 - INFO - main - [url_processor.py:97] - process_url - 嘗試獲取網頁內容 (嘗試 1/3, force_new_driver=False) 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/pages/contact, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/pages/contact 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/pages/contact 的第 1/3 次請求 2025-10-14 15:30:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1352ae6790>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/cc7477d52104965e637e07407bf68450 2025-10-14 15:30:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13529134d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/cc7477d52104965e637e07407bf68450 2025-10-14 15:30:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1352910fd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/cc7477d52104965e637e07407bf68450 2025-10-14 15:30:18 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:30:18 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:30:18 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:30:18 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:30:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:30:18 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:30:18 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:30:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:30:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:30:19 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:30:19 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x597d3552e4e3 <unknown> #1 0x597d3525dc76 <unknown> #2 0x597d35286d78 <unknown> #3 0x597d35283029 <unknown> #4 0x597d352c1ccc <unknown> #5 0x597d352c147f <unknown> #6 0x597d352b8de3 <unknown> #7 0x597d3528e2dd <unknown> #8 0x597d3528f34e <unknown> #9 0x597d354ee3e4 <unknown> #10 0x597d354f23d7 <unknown> #11 0x597d354fcb20 <unknown> #12 0x597d354f3023 <unknown> #13 0x597d354c11aa <unknown> #14 0x597d355176b8 <unknown> #15 0x597d35517847 <unknown> #16 0x597d35527243 <unknown> #17 0x7e1900494ac3 <unknown> 2025-10-14 15:30:19 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:30:19 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:30:19 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:30:19 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/pages/contact 2025-10-14 15:30:20 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/pages/contact 2025-10-14 15:30:20 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:30:20 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:30:20 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:30:20 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/pages/contact 2025-10-14 15:30:21 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 0/1 2025-10-14 15:30:22 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:30:22 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:30:22 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:30:22 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:30:26 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 99 2025-10-14 15:30:28 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 99,內容可能已加載完成 2025-10-14 15:30:28 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:30:28 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:30:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 0/1 2025-10-14 15:30:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:30:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:30:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:30:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:30:42 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 0/1 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/pages/contact (實際 URL: https://gululuart.com/pages/contact) 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:30:44 - INFO - database - [database.py:505] - update_url_status - URL ID 75 状态已更新为 processing 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 98666 字節 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 419 字節 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 524 字節 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 445 字節 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 419 字節,約 64 個詞,12 行 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 聯絡 🎈聯絡我們 如果你對商品或訂單有任何疑問,歡迎與我聯繫。 客服 Email:happygululu@gmail.com 客服時間:週一至週五 10:00 - 18:00 (GMT+8) 工作室地址:新北市三重區永安北路二段35巷21號4樓 --- 【Contact Us】 If you have any questions about our products or your order, please feel free to contact me. Customer Service: happygululu@gmail.com Service Hours: Monday - Friday, 10:00 AM - 6:00 PM (GMT+8) 4 F., No. 21, Ln. 35, Sec. 2, Yong'an N. Rd., Sanchong Dist., , New Taipei City, 241, TW 2025-10-14 15:30:44 - INFO - ContentAnalyzer - [analyzer.py:310] - check_specific_issues - 開始檢查網頁特定問題: URL=https://gululuart.com/pages/contact, HTML 內容大小=98666 字節 2025-10-14 15:30:44 - INFO - ContentAnalyzer - [analyzer.py:676] - check_specific_issues - 網頁特定問題檢查完成: URL=https://gululuart.com/pages/contact, 發現問題數=9, 嚴重問題數=3, 耗時=0.022秒 2025-10-14 15:30:44 - INFO - ContentAnalyzer - [analyzer.py:681] - check_specific_issues - 問題類型摘要: suspicious_external_script(1), suspicious_inline_script(2), iframe(1), form(5) 2025-10-14 15:30:44 - INFO - ContentAnalyzer - [analyzer.py:685] - check_specific_issues - 嚴重程度摘要: info(6), warning(3) 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2522] - find_internal_links - 從HTML靜態內容中提取了 10 個內部鏈接 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2371] - should_skip_url - 跳過低價值URL: https://gululuart.com/policies/privacy-policy (匹配模式: /privacy) 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:2686] - find_internal_links - 總共找到 9 個有效內部鏈接 2025-10-14 15:30:44 - INFO - main - [url_processor.py:153] - process_url - 找到 9 個內部鏈接,最大深度2層 2025-10-14 15:30:44 - INFO - main - [url_processor.py:179] - process_url - 更新 UI 審核進度(URL ID=75):總計 10 個網址,已完成 1 個(主頁面) 2025-10-14 15:30:44 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/pages/contact 2025-10-14 15:30:44 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/pages/contact, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/pages/contact 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/pages/contact 的第 1/3 次請求 2025-10-14 15:30:44 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13537464d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f86967d815495b1c7c48bf97002db2b2 2025-10-14 15:30:44 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13537456d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f86967d815495b1c7c48bf97002db2b2 2025-10-14 15:30:44 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13537472d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f86967d815495b1c7c48bf97002db2b2 2025-10-14 15:30:44 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:30:44 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:30:44 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:30:44 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:30:44 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:30:44 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:30:44 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:30:44 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:30:45 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:30:45 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:30:45 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited normally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x591f7285e4e3 <unknown> #1 0x591f7258dc76 <unknown> #2 0x591f725b6d78 <unknown> #3 0x591f725b3029 <unknown> #4 0x591f725f1ccc <unknown> #5 0x591f725f147f <unknown> #6 0x591f725e8de3 <unknown> #7 0x591f725be2dd <unknown> #8 0x591f725bf34e <unknown> #9 0x591f7281e3e4 <unknown> #10 0x591f728223d7 <unknown> #11 0x591f7282cb20 <unknown> #12 0x591f72823023 <unknown> #13 0x591f727f11aa <unknown> #14 0x591f728476b8 <unknown> #15 0x591f72847847 <unknown> #16 0x591f72857243 <unknown> #17 0x700414694ac3 <unknown> 2025-10-14 15:30:45 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:30:45 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/pages/contact 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/pages/contact 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:30:46 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/pages/contact 2025-10-14 15:30:48 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:30:48 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:30:48 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:30:48 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:30:52 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 1/10 2025-10-14 15:30:52 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 99 2025-10-14 15:30:54 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 99,內容可能已加載完成 2025-10-14 15:30:54 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:30:55 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:31:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:31:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:31:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 1/10 2025-10-14 15:31:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:31:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:31:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:31:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:31:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:31:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:31:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:31:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:31:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/pages/contact (實際 URL: https://gululuart.com/pages/contact) 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:31:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.12 秒,結果: 0 2025-10-14 15:31:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.12 秒,結果: 0 2025-10-14 15:31:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.13 秒,結果: 0 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 98666 字節 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 419 字節 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 524 字節 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 445 字節 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 419 字節,約 64 個詞,12 行 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 聯絡 🎈聯絡我們 如果你對商品或訂單有任何疑問,歡迎與我聯繫。 客服 Email:happygululu@gmail.com 客服時間:週一至週五 10:00 - 18:00 (GMT+8) 工作室地址:新北市三重區永安北路二段35巷21號4樓 --- 【Contact Us】 If you have any questions about our products or your order, please feel free to contact me. Customer Service: happygululu@gmail.com Service Hours: Monday - Friday, 10:00 AM - 6:00 PM (GMT+8) 4 F., No. 21, Ln. 35, Sec. 2, Yong'an N. Rd., Sanchong Dist., , New Taipei City, 241, TW 2025-10-14 15:31:10 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 2/10 個網址 2025-10-14 15:31:10 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/collections/all 2025-10-14 15:31:10 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/collections/all, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/collections/all 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/collections/all 的第 1/3 次請求 2025-10-14 15:31:10 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353559390>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f65c0a78206039bf518fa10bdce3ce90 2025-10-14 15:31:10 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353559610>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f65c0a78206039bf518fa10bdce3ce90 2025-10-14 15:31:10 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353758550>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f65c0a78206039bf518fa10bdce3ce90 2025-10-14 15:31:10 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:31:10 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:31:10 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:31:10 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:31:10 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:31:10 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:31:10 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:31:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:31:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:31:11 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:31:11 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x56e01f2494e3 <unknown> #1 0x56e01ef78c76 <unknown> #2 0x56e01efa1d78 <unknown> #3 0x56e01ef9e029 <unknown> #4 0x56e01efdcccc <unknown> #5 0x56e01efdc47f <unknown> #6 0x56e01efd3de3 <unknown> #7 0x56e01efa92dd <unknown> #8 0x56e01efaa34e <unknown> #9 0x56e01f2093e4 <unknown> #10 0x56e01f20d3d7 <unknown> #11 0x56e01f217b20 <unknown> #12 0x56e01f20e023 <unknown> #13 0x56e01f1dc1aa <unknown> #14 0x56e01f2326b8 <unknown> #15 0x56e01f232847 <unknown> #16 0x56e01f242243 <unknown> #17 0x753de9294ac3 <unknown> 2025-10-14 15:31:11 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:31:11 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:31:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:31:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.14 秒,結果: 0 2025-10-14 15:31:12 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:31:12 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/collections/all 2025-10-14 15:31:12 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 2/10 2025-10-14 15:31:13 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/collections/all 2025-10-14 15:31:13 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:31:13 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:31:13 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:31:13 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/collections/all 2025-10-14 15:31:13 - ERROR - main - [main.py:200] - handle_api_exception - 網頁錯誤 [/]: 405 Method Not Allowed: The method is not allowed for the requested URL. Traceback (most recent call last): File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/app.py", line 891, in dispatch_request self.raise_routing_exception(req) File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/app.py", line 500, in raise_routing_exception raise request.routing_exception # type: ignore[misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/ctx.py", line 362, in match_request result = self.url_adapter.match(return_rule=True) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/werkzeug/routing/map.py", line 624, in match raise MethodNotAllowed(valid_methods=list(e.have_match_for)) from None werkzeug.exceptions.MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL. 2025-10-14 15:31:15 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:31:15 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:31:15 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:31:15 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:31:19 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 180 2025-10-14 15:31:21 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 180,內容可能已加載完成 2025-10-14 15:31:21 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:31:21 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:31:21 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-14 15:31:22 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 2/10 2025-10-14 15:31:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 2/10 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/collections/all (實際 URL: https://gululuart.com/collections/all) 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 162948 字節 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 381 字節 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 768 字節 2025-10-14 15:31:33 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 874 字節 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 1545 字節 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 2325 字節,約 233 個詞,308 行 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 跳至內容 🚚 台灣地區滿 NT$1,800 免運! 登入 Instagram YouTube 登入 購物車 商品已加入購物車 檢視購物車 繼續購物 篩選條件 篩選條件 全部移除 8 項產品 Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 定價 從 $380.00 TWD 起 定價 售價 從 $380.00 TWD 起 吊帶褲小象防水貼紙 吊帶褲小象防水貼紙 定價 $120.00 TWD 定價 售價 $120.00 TWD 呆萌小象防水貼紙 呆萌小象防水貼紙 定價 $90.00 TWD 定價 售價 $90.00 TWD 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 定價 $990.00 TWD 定價 售價 $990.00 TWD 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 定價 $990.00 TWD 定價 售價 $990.00 TWD 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 定價 $580.00 TWD 定價 售價 $580.00 TWD 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 定價 $880.00 TWD 定價 售價 $880.00 TWD 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 定價 從 $1,090.00 TWD 起 定價 售價 從 $1,090.00 TWD 起 選擇項目後,整個頁面將重新整理。 在新視窗中開啟。 額外的結構化內容: • 有庫存 (8) 有庫存 (8 項產品) • 無庫存 (0) 無庫存 (0 項產品) • Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 定價 從 $380.00 TWD 起 定價 售價 從 $380.00 TWD 起 • 吊帶褲小象防水貼紙 吊帶褲小象防水貼紙 定價 $120.00 TWD 定價 售價 $120.00 TWD • 呆萌小象防水貼紙 呆萌小象防水貼紙 定價 $90.00 TWD 定價 售價 $90.00 TWD • 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 定價 $990.00 TWD 定價 售價 $990.00 TWD • 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 定價 $990.00 TWD 定價 售價 $990.00 TWD • 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 定價 $580.00 TWD 定價 售價 $580.00 TWD • 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 定價 $880.00 TWD 定價 售價 $880.00 TWD • 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 定價 從 $1,090.00 TWD 起 定價 售價 從 $1,090.00 TWD 起 • 選擇項目後,整個頁面將重新整理。 • 在新視窗中開啟。 2025-10-14 15:31:34 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 3/10 個網址 2025-10-14 15:31:34 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/cart 2025-10-14 15:31:34 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/cart, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/cart 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/cart 的第 1/3 次請求 2025-10-14 15:31:34 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13537ef010>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/47788d6b612e41496893d0d9b06b337f 2025-10-14 15:31:34 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13537ee150>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/47788d6b612e41496893d0d9b06b337f 2025-10-14 15:31:34 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13537a1090>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/47788d6b612e41496893d0d9b06b337f 2025-10-14 15:31:34 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:31:34 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:31:34 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:31:34 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:31:34 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:31:34 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:31:34 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:31:34 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:31:34 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:31:35 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:31:35 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x636c5c7704e3 <unknown> #1 0x636c5c49fc76 <unknown> #2 0x636c5c4c8d78 <unknown> #3 0x636c5c4c5029 <unknown> #4 0x636c5c503ccc <unknown> #5 0x636c5c50347f <unknown> #6 0x636c5c4fade3 <unknown> #7 0x636c5c4d02dd <unknown> #8 0x636c5c4d134e <unknown> #9 0x636c5c7303e4 <unknown> #10 0x636c5c7343d7 <unknown> #11 0x636c5c73eb20 <unknown> #12 0x636c5c735023 <unknown> #13 0x636c5c7031aa <unknown> #14 0x636c5c7596b8 <unknown> #15 0x636c5c759847 <unknown> #16 0x636c5c769243 <unknown> #17 0x72bfeb094ac3 <unknown> 2025-10-14 15:31:35 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:31:35 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:31:35 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:31:35 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/cart 2025-10-14 15:31:36 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/cart 2025-10-14 15:31:36 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:31:36 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:31:36 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:31:36 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/cart 2025-10-14 15:31:38 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:31:38 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:31:38 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:31:38 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:31:42 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 99 2025-10-14 15:31:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 3/10 2025-10-14 15:31:44 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 99,內容可能已加載完成 2025-10-14 15:31:44 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:31:44 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:31:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 3/10 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/cart (實際 URL: https://gululuart.com/cart) 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 101208 字節 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 459 字節 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 277 字節 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 277 字節,約 32 個詞,28 行 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 跳至內容 🚚 台灣地區滿 NT$1,800 免運! 登入 Instagram YouTube 登入 購物車 商品已加入購物車 檢視購物車 繼續購物 您的購物車 繼續購物 您的購物車是空的 繼續購物 是否有帳號? 登入 以加速結帳。 估計總金額 $0.00 TWD 結帳時計算稅額、折扣和 運費 。 結帳 您的購物車中有一件或多件品項為定期購買或延遲購買的品項。繼續即表示我同意 取消政策 ,並授權您依據此頁面列出的價格、頻率和日期,透過我的付款方式向我收費,直到我的訂單出貨或者我經過允許取消訂單為止。 選擇項目後,整個頁面將重新整理。 在新視窗中開啟。 2025-10-14 15:32:00 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 4/10 個網址 2025-10-14 15:32:00 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/policies/contact-information 2025-10-14 15:32:00 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/policies/contact-information, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/policies/contact-information 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/policies/contact-information 的第 1/3 次請求 2025-10-14 15:32:00 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13535b5f90>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/554451e970d8abe507dd5a570bed2567 2025-10-14 15:32:00 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353745b10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/554451e970d8abe507dd5a570bed2567 2025-10-14 15:32:00 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353744150>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/554451e970d8abe507dd5a570bed2567 2025-10-14 15:32:00 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:32:00 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:32:00 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:32:00 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:32:00 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:00 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:32:00 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:32:00 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:01 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:01 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:32:01 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x6196d86a24e3 <unknown> #1 0x6196d83d1c76 <unknown> #2 0x6196d83fad78 <unknown> #3 0x6196d83f7029 <unknown> #4 0x6196d8435ccc <unknown> #5 0x6196d843547f <unknown> #6 0x6196d842cde3 <unknown> #7 0x6196d84022dd <unknown> #8 0x6196d840334e <unknown> #9 0x6196d86623e4 <unknown> #10 0x6196d86663d7 <unknown> #11 0x6196d8670b20 <unknown> #12 0x6196d8667023 <unknown> #13 0x6196d86351aa <unknown> #14 0x6196d868b6b8 <unknown> #15 0x6196d868b847 <unknown> #16 0x6196d869b243 <unknown> #17 0x73eeacc94ac3 <unknown> 2025-10-14 15:32:01 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:32:01 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:32:01 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:32:01 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/policies/contact-information 2025-10-14 15:32:02 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/policies/contact-information 2025-10-14 15:32:03 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:32:03 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:32:03 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:32:03 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/policies/contact-information 2025-10-14 15:32:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 4/10 2025-10-14 15:32:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:32:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:32:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:32:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:32:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:32:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:32:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:32:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:32:05 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:32:05 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:32:05 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:32:05 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:32:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:32:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:32:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:32:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:32:09 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 92 2025-10-14 15:32:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:32:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:32:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:32:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:32:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:32:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:32:11 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 92,內容可能已加載完成 2025-10-14 15:32:11 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:32:11 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:32:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:32:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:32:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 4/10 2025-10-14 15:32:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 4/10 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/policies/contact-information (實際 URL: https://gululuart.com/policies/contact-information) 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 94599 字節 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 332 字節 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 273 字節 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 332 字節,約 42 個詞,12 行 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 聯絡資訊 🎈聯絡我們 有任何問題都歡迎來信。 Email:happygululu@gmail.com 客服時間:週一至週五 10:00 - 18:00 (GMT+8) Email: happygululu@gmail.com Service Hours: Monday - Friday, 10:00 AM - 6:00 PM (GMT+8) 有任何問題都歡迎來信。 Email:happygululu@gmail.com 客服時間:週一至週五 10:00 - 18:00 (GMT+8) Email: happygululu@gmail.com Service Hours: Monday - Friday, 10:00 AM - 6:00 PM (GMT+8) 2025-10-14 15:32:26 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 5/10 個網址 2025-10-14 15:32:26 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/policies/shipping-policy 2025-10-14 15:32:26 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/policies/shipping-policy, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/policies/shipping-policy 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/policies/shipping-policy 的第 1/3 次請求 2025-10-14 15:32:26 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353744490>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b04aa715d3cdd0792033a3974cad10ab 2025-10-14 15:32:26 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e135345e9d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b04aa715d3cdd0792033a3974cad10ab 2025-10-14 15:32:26 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e135345fd10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b04aa715d3cdd0792033a3974cad10ab 2025-10-14 15:32:26 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:32:26 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:32:26 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:32:26 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:32:26 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:26 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:32:26 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:32:27 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:27 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:27 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:32:27 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x5a73222d34e3 <unknown> #1 0x5a7322002c76 <unknown> #2 0x5a732202bd78 <unknown> #3 0x5a7322028029 <unknown> #4 0x5a7322066ccc <unknown> #5 0x5a732206647f <unknown> #6 0x5a732205dde3 <unknown> #7 0x5a73220332dd <unknown> #8 0x5a732203434e <unknown> #9 0x5a73222933e4 <unknown> #10 0x5a73222973d7 <unknown> #11 0x5a73222a1b20 <unknown> #12 0x5a7322298023 <unknown> #13 0x5a73222661aa <unknown> #14 0x5a73222bc6b8 <unknown> #15 0x5a73222bc847 <unknown> #16 0x5a73222cc243 <unknown> #17 0x7b0327e94ac3 <unknown> 2025-10-14 15:32:27 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:32:27 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:32:28 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:32:28 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/policies/shipping-policy 2025-10-14 15:32:29 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/policies/shipping-policy 2025-10-14 15:32:29 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:32:29 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:32:29 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:32:29 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/policies/shipping-policy 2025-10-14 15:32:31 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:32:31 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:32:31 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:32:31 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:32:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 5/10 2025-10-14 15:32:35 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 114 2025-10-14 15:32:37 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 114,內容可能已加載完成 2025-10-14 15:32:37 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:32:37 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:32:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 5/10 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/policies/shipping-policy (實際 URL: https://gululuart.com/policies/shipping-policy) 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 95463 字節 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 602 字節 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 704 字節 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 604 字節 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 117 字節 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 833 字節,約 96 個詞,50 行 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 跳至內容 🚚 台灣地區滿 NT$1,800 免運! 登入 Instagram YouTube 登入 購物車 商品已加入購物車 檢視購物車 繼續購物 運送政策 這裡是創作者古露露親自經營的小小插圖品牌, 每一件商品都包含了插圖與滿滿的心意。 請依照商品類型,參考以下運送說明。謝謝你的支持與耐心。 運費國際快遞 NT$229 全館消費滿 NT$1,800,即 享免運優惠! Printify 商品運送至台灣需時多久? 商品由 Printify 合作廠商 按需印製並從國外出貨 ,運送至台灣的時間會因印製時間、物流方式與海關檢驗而有所不同。請參考以下預估時程: 因為商品是下單後才製作,所以需要一些時間。製作約 2–7 個工作天,加上國際運送 10–30 個工作天, 總共約 12–37 個工作天 。謝謝你的耐心等待! (實際送達時間會依供應商與物流情況而異) 關於商品運送: 我們的產品可能由不同專業的供應商夥伴直接印製與配送。因此,訂單可能會被拆分為數個包裹寄送,送達時間也會略有不同。 台灣買家請務必完成 EZ Way 實名認證 依據台灣海關規定, 所有從海外寄送到台灣的包裹皆需進行實名認證與報關授權 。 請您於下單後,使用「EZ Way 易利委 App」完成以下步驟: 安裝 EZ Way App(可於 App Store / Google Play 下載) 完成手機號碼認證與身分資料綁定 等待商品報關時,於 App 中授權報關 ⏰ 未完成實名認證或授權,包裹將無法通關,可能被退回或延遲配送。 小提醒 EZ Way 是台灣官方報關工具,非我方提供 選擇項目後,整個頁面將重新整理。 在新視窗中開啟。 額外的結構化內容: • 安裝 EZ Way App(可於 App Store / Google Play 下載) • 完成手機號碼認證與身分資料綁定 • 等待商品報關時,於 App 中授權報關 • 選擇項目後,整個頁面將重新整理。 • 在新視窗中開啟。 2025-10-14 15:32:52 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 6/10 個網址 2025-10-14 15:32:52 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/policies/refund-policy 2025-10-14 15:32:52 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/policies/refund-policy, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/policies/refund-policy 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/policies/refund-policy 的第 1/3 次請求 2025-10-14 15:32:52 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e135290b390>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/4fd7c5b50845bb15a8613f1503b2745c 2025-10-14 15:32:52 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1352922810>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/4fd7c5b50845bb15a8613f1503b2745c 2025-10-14 15:32:52 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1352920c10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/4fd7c5b50845bb15a8613f1503b2745c 2025-10-14 15:32:52 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:32:52 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:32:52 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:32:52 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:32:52 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:53 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:32:53 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:32:53 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:53 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:32:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 6/10 2025-10-14 15:32:53 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:32:53 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x5a9183abf4e3 <unknown> #1 0x5a91837eec76 <unknown> #2 0x5a9183817d78 <unknown> #3 0x5a9183814029 <unknown> #4 0x5a9183852ccc <unknown> #5 0x5a918385247f <unknown> #6 0x5a9183849de3 <unknown> #7 0x5a918381f2dd <unknown> #8 0x5a918382034e <unknown> #9 0x5a9183a7f3e4 <unknown> #10 0x5a9183a833d7 <unknown> #11 0x5a9183a8db20 <unknown> #12 0x5a9183a84023 <unknown> #13 0x5a9183a521aa <unknown> #14 0x5a9183aa86b8 <unknown> #15 0x5a9183aa8847 <unknown> #16 0x5a9183ab8243 <unknown> #17 0x7c1b4f894ac3 <unknown> 2025-10-14 15:32:53 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:32:53 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:32:54 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:32:54 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/policies/refund-policy 2025-10-14 15:32:55 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/policies/refund-policy 2025-10-14 15:32:55 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:32:55 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:32:55 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:32:55 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/policies/refund-policy 2025-10-14 15:32:57 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:32:57 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:32:57 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:32:57 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:33:01 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 104 2025-10-14 15:33:03 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 104,內容可能已加載完成 2025-10-14 15:33:03 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:33:03 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:33:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 6/10 2025-10-14 15:33:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:33:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:33:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:33:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:33:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:33:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:33:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:33:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:33:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 6/10 2025-10-14 15:33:18 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/policies/refund-policy (實際 URL: https://gululuart.com/policies/refund-policy) 2025-10-14 15:33:18 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:33:18 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:33:18 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:33:18 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 95021 字節 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 453 字節 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 553 字節 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 453 字節 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 453 字節,約 22 個詞,17 行 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 退款政策 這裡是古露露親自營運的小小插圖品牌, 每件商品都融合了插畫、故事與心意。 因應不同商品的製作與配送方式, 我們針對不同商品類型訂定了專屬的退換貨與退款政策。 請在購買前詳細閱讀,謝謝你的理解與支持。 🎈我們的實體商品由「Printify 合作廠商」按需印製與出貨。 由於每件商品皆為客製化印製,恕不接受以下原因申請退貨或退款: 「尺寸不合、色差問題、個人喜好或臨時改變主意」 如果真的遇到了這種情況,雖然我們無法為你退貨,但為了表達我們的心意,我們非常樂意提供你一組 專屬折扣碼(一次性使用),讓你在下次購物時使用,期望能帶給你更好的體驗。 若商品符合以下情況,我們將協助你申請補寄或退款(不用退貨): 商品破損或有明顯瑕疵、商品與訂單內容不符(如印錯圖案、寄錯商品)、請於收到商品後請馬上主動聯繫並提供清晰照片與訂單資訊 請來信至:happygululu@gmail.com 請附上以下資料: - 訂單編號 - 瑕疵或錯誤商品的「清楚照片2-3張,或一個簡短的影片」 - 問題描述(可簡述情況) 2025-10-14 15:33:19 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 7/10 個網址 2025-10-14 15:33:19 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:33:19 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 的第 1/3 次請求 2025-10-14 15:33:19 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13535a3390>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/45038a862306b6807a2cb300358f90f7 2025-10-14 15:33:19 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13538fb8d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/45038a862306b6807a2cb300358f90f7 2025-10-14 15:33:19 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13538faf90>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/45038a862306b6807a2cb300358f90f7 2025-10-14 15:33:19 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:33:19 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:33:19 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:33:19 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:33:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:33:19 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:33:19 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:33:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:33:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:33:20 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:33:20 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x5eb807d464e3 <unknown> #1 0x5eb807a75c76 <unknown> #2 0x5eb807a9ed78 <unknown> #3 0x5eb807a9b029 <unknown> #4 0x5eb807ad9ccc <unknown> #5 0x5eb807ad947f <unknown> #6 0x5eb807ad0de3 <unknown> #7 0x5eb807aa62dd <unknown> #8 0x5eb807aa734e <unknown> #9 0x5eb807d063e4 <unknown> #10 0x5eb807d0a3d7 <unknown> #11 0x5eb807d14b20 <unknown> #12 0x5eb807d0b023 <unknown> #13 0x5eb807cd91aa <unknown> #14 0x5eb807d2f6b8 <unknown> #15 0x5eb807d2f847 <unknown> #16 0x5eb807d3f243 <unknown> #17 0x7039f8694ac3 <unknown> 2025-10-14 15:33:20 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:33:20 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:33:20 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:33:20 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:33:21 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:33:21 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:33:21 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:33:21 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:33:21 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:33:23 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:33:23 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:33:23 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:33:23 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:33:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 7/10 2025-10-14 15:33:27 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 103 2025-10-14 15:33:29 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 103,內容可能已加載完成 2025-10-14 15:33:29 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:33:29 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:33:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:33:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:33:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:33:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:33:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 7/10 2025-10-14 15:33:44 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 7/10 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 (實際 URL: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91) 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 97373 字節 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 484 字節 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 580 字節 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 480 字節 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 182 字節 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 774 字節,約 65 個詞,53 行 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 跳至內容 🚚 台灣地區滿 NT$1,800 免運! 登入 Instagram YouTube 登入 購物車 商品已加入購物車 檢視購物車 繼續購物 關於我們 你有想過嗎?在我們身體裡,其實住著一群小象工人 🐘 他們在「小象工廠」裡忙著把食物變成一顆顆營養泡泡糖,守護我們的健康。 這個想法源自我的蔬食生活。 因為喜歡畫圖, 我開始畫插圖和小漫畫,希望用可愛的方式,讓健康飲食變得更輕鬆有趣。 一開始畫的是各種角色和小故事,直到「小象工廠」這個世界慢慢成形,小象 Iru 和橘貓才成為主角,陪我一起把這些故事分享給大家。 我是 古露露 Gululu 。現在,這些小象們也走進了商品裡,希望能成為你日常生活中的溫暖陪伴。 小象Iru 個性:呆萌、善良、善於觀察和思考、有同理心、關心同伴和主人 喜歡捏自己肥嘟嘟的肚肚,吃飽後肚子會蓬蓬的 喜歡寫日記,習慣把心情寫下來 負責營養素泡泡糖的分類和運送 橘貓廠長 個性: 看起來在偷懶但實際上在觀察全局、平易近人但有威信、善於適時指導 工作:負責協調各部門工作、監督工廠整體運作 配角小象們 Momo :活潑有活力、熱心、支持性強 Koko : 喜歡研究營養知識,對蔬菜特別有感情 Nana :專業技術型、可靠、成長快速 Pico :年輕熱血型、勇於提出想法、充滿活力 選擇項目後,整個頁面將重新整理。 在新視窗中開啟。 額外的結構化內容: • 個性:呆萌、善良、善於觀察和思考、有同理心、關心同伴和主人 • 喜歡捏自己肥嘟嘟的肚肚,吃飽後肚子會蓬蓬的 • 喜歡寫日記,習慣把心情寫下來 • 負責營養素泡泡糖的分類和運送 • 個性:看起來在偷懶但實際上在觀察全局、平易近人但有威信、善於適時指導 • 工作:負責協調各部門工作、監督工廠整體運作 • 選擇項目後,整個頁面將重新整理。 • 在新視窗中開啟。 2025-10-14 15:33:45 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 8/10 個網址 2025-10-14 15:33:45 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:33:45 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 的第 1/3 次請求 2025-10-14 15:33:45 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1359e2e890>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/189a0e28684c432210941a61585cc232 2025-10-14 15:33:45 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e135370cb50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/189a0e28684c432210941a61585cc232 2025-10-14 15:33:45 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e135370d190>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/189a0e28684c432210941a61585cc232 2025-10-14 15:33:45 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:33:45 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:33:45 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:33:45 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:33:45 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:33:45 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:33:45 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:33:46 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:33:46 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:33:46 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:33:46 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x630b4b6ad4e3 <unknown> #1 0x630b4b3dcc76 <unknown> #2 0x630b4b405d78 <unknown> #3 0x630b4b402029 <unknown> #4 0x630b4b440ccc <unknown> #5 0x630b4b44047f <unknown> #6 0x630b4b437de3 <unknown> #7 0x630b4b40d2dd <unknown> #8 0x630b4b40e34e <unknown> #9 0x630b4b66d3e4 <unknown> #10 0x630b4b6713d7 <unknown> #11 0x630b4b67bb20 <unknown> #12 0x630b4b672023 <unknown> #13 0x630b4b6401aa <unknown> #14 0x630b4b6966b8 <unknown> #15 0x630b4b696847 <unknown> #16 0x630b4b6a6243 <unknown> #17 0x787769694ac3 <unknown> 2025-10-14 15:33:46 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:33:46 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:33:47 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:33:47 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:33:48 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:33:48 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:33:48 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:33:48 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:33:48 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:33:50 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:33:50 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:33:50 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:33:50 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:33:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 8/10 2025-10-14 15:33:54 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 114 2025-10-14 15:33:56 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 114,內容可能已加載完成 2025-10-14 15:33:56 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:33:56 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:34:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 8/10 2025-10-14 15:34:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:34:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:34:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:34:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:34:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:34:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a (實際 URL: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a) 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 99005 字節 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 860 字節 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 969 字節 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 869 字節 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=True, 電話=False, 分數=1 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 860 字節,約 44 個詞,21 行 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 常見問題 Q&A 【關於訂單與運送】 Q1:下單後,大概多久可以收到商品呢? A:因為商品是下單後才製作,所以需要一些時間。製作約 2–7 個工作天,加上國際運送 10–30 個工作天,總共約 12–37 個工作天 即可收到。謝謝你的耐心等待!(實際送達時間會依供應商與物流情況而異) 關於商品運送:我們的產品可能由不同專業的供應商夥伴直接印製與配送。因此,訂單可能會被拆分為數個包裹寄送,送達時間也會略有不同。 Q2:為什麼一定要用「EZ Way 易利委」? A:依台灣海關規定,國際包裹需要使用「EZ Way 易利委 App」完成實名認證,才能順利通關收件。請務必下載並綁定手機,這是確保您能順利收到商品的重要步驟。 Q3:運費是如何計算的呢? A:寄送到台灣的標準運費均一價 NT$229。單筆消費滿 NT$1,800 即享免運優惠! Q4:我可以指定超商取貨嗎? A:很抱歉,目前暫時無法提供超商取貨,僅能配送到府。 【關於商品與退換貨】 Q5:如果收到的商品有瑕疵或寄錯了怎麼辦? A:請放心,你不需要退回商品!只要在收到後,來信至客服信箱 happygululu@gmail.com ,並附上「訂單編號」和「瑕疵處的清楚照片」,我們會盡快為您處理補寄或退款。 Q6:如果尺寸買錯了,或是收到後覺得不喜歡,可以退貨嗎? A:因為每件商品都是下單後才專屬印製的「客製化商品」,所以除非商品本身有瑕疵,我們無法因尺寸或個人喜好而退換貨。但如果你對商品真的感到不滿意,請來信告訴我們,我們會提供 一次性的優惠(僅限使用一次),讓你在下次選購時能有更好的體驗。 Q7:未來還會有新的系列嗎? A:我們會持續規劃新的系列,如果有訂閱電子報或追蹤社群,就有機會第一時間收到通知喔~ 【關於創作者與品牌】 Q8:Gululu 和 Iru 是什麼關係? A:「古露露 Gululu」是創作者的暱稱,「Iru」是小象工廠故事中的主角小象——有著圓滾滾的小肚肚,看起來特別呆萌可愛。更多關於品牌的介紹,可以在「關於我們」頁面看到! 2025-10-14 15:34:11 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 9/10 個網址 2025-10-14 15:34:11 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://gululuart.com/ 2025-10-14 15:34:11 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://gululuart.com/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1027] - get_content - 檢測到短網址: https://gululuart.com/ 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:120 秒 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://gululuart.com/ 的第 1/3 次請求 2025-10-14 15:34:11 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13538f9b50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/5c5a1bfb367c296dfc9dd7b2df8207aa 2025-10-14 15:34:11 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e13536038d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/5c5a1bfb367c296dfc9dd7b2df8207aa 2025-10-14 15:34:11 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7e1353602450>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/5c5a1bfb367c296dfc9dd7b2df8207aa 2025-10-14 15:34:11 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-14 15:34:11 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-14 15:34:11 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-14 15:34:11 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-14 15:34:12 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:34:12 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-14 15:34:12 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-14 15:34:12 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:34:12 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-14 15:34:12 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-14 15:34:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:34:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:34:12 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x63f700a3e4e3 <unknown> #1 0x63f70076dc76 <unknown> #2 0x63f700796d78 <unknown> #3 0x63f700793029 <unknown> #4 0x63f7007d1ccc <unknown> #5 0x63f7007d147f <unknown> #6 0x63f7007c8de3 <unknown> #7 0x63f70079e2dd <unknown> #8 0x63f70079f34e <unknown> #9 0x63f7009fe3e4 <unknown> #10 0x63f700a023d7 <unknown> #11 0x63f700a0cb20 <unknown> #12 0x63f700a03023 <unknown> #13 0x63f7009d11aa <unknown> #14 0x63f700a276b8 <unknown> #15 0x63f700a27847 <unknown> #16 0x63f700a37243 <unknown> #17 0x7f9262094ac3 <unknown> 2025-10-14 15:34:12 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-14 15:34:12 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-14 15:34:13 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-14 15:34:13 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://gululuart.com/ 2025-10-14 15:34:14 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 9/10 2025-10-14 15:34:14 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://gululuart.com/ 2025-10-14 15:34:14 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-14 15:34:14 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-14 15:34:14 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-14 15:34:14 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://gululuart.com/ 2025-10-14 15:34:16 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-14 15:34:16 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-14 15:34:16 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-14 15:34:16 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-14 15:34:20 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 209 2025-10-14 15:34:22 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 209,內容可能已加載完成 2025-10-14 15:34:22 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-14 15:34:22 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loading')],等待其消失 2025-10-14 15:34:24 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 9/10 2025-10-14 15:34:34 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 9/10 2025-10-14 15:34:37 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://gululuart.com/ (實際 URL: https://gululuart.com/) 2025-10-14 15:34:37 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-14 15:34:37 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-14 15:34:37 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 138621577471104: 關閉 WebDriver 實例 2025-10-14 15:34:37 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 191248 字節 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 4399 字節 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 5483 字節 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 5383 字節 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 1438 字節 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 6933 字節,約 457 個詞,476 行 2025-10-14 15:34:38 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: 跳至內容 🚚 台灣地區滿 NT$1,800 免運! 登入 Instagram YouTube 登入 購物車 商品已加入購物車 檢視購物車 繼續購物 每日可愛能量・生產中! 全部商品 來自小象工廠的驚喜包裹! 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 定價 $880.00 TWD 定價 售價 $880.00 TWD 服飾配件 服飾配件 精選好物 Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 定價 從 $380.00 TWD 起 定價 售價 從 $380.00 TWD 起 吊帶褲小象防水貼紙 吊帶褲小象防水貼紙 定價 $120.00 TWD 定價 售價 $120.00 TWD 呆萌小象防水貼紙 呆萌小象防水貼紙 定價 $90.00 TWD 定價 售價 $90.00 TWD 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 定價 $990.00 TWD 定價 售價 $990.00 TWD 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 定價 $990.00 TWD 定價 售價 $990.00 TWD 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 定價 $580.00 TWD 定價 售價 $580.00 TWD 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 定價 $880.00 TWD 定價 售價 $880.00 TWD 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 定價 從 $1,090.00 TWD 起 定價 售價 從 $1,090.00 TWD 起 來自工廠的直送畫面... 小象工廠日誌 這是一群努力的小象,在你我身體裡那座奇妙的工廠中,展開他們的努力與冒險。我們的小說連載,將帶你深入他們的故事... 點我看故事 小象 Iru 的健康筆記 7 Videos Subscribe 0:04:04 想靠少吃瘦身 卻常常沒成功?關鍵可能不在意志力 09/05/2025 總是陷入「白天吃很少、晚上卻失控」的無限循環嗎? 這不是你沒毅力,而是身體發出的重要求救訊號喔~ 部分內容參考自《蔬食營養聖經》(Brenda Davis & Vesanto Melina 著),本影片內容僅供知識參考,非專業醫療或營養建議,請依個人狀況諮詢專業人士。 ---------------------------------------------------- 💡 影片補充小知識 情緒性飲食的覺察 這種因為壓力或孤單感而想吃東西的行為,其實就是常見的「情緒性飲食」喔。 飽足感的差異 像是豆類、堅果等原型食物富含膳食纖維與好的蛋白質,能提供更持久的穩定飽足感。 營養密度vs空熱量 選擇富含營養素的原型食物能讓身體真正滿足,而加工零食則較容易帶來身體負擔。 正念飲食 試著放慢速度專心品嚐,並在感覺舒服的時候就停下來,這就是傾聽身體的開始。 身體訊號的傾聽 例如有時候身體發出的飢餓感,其實可能只是口渴的訊號,可以試著先喝杯水等待一下。 多樣化營養 透過聰明搭配蔬菜、豆類、全穀類與好油脂,我們能更輕鬆地滿足身體全面的營養需求。 ---------------------------------------------------- |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f |健康小筆記| https://youtube.com/playlist?list=PL2xaindKE8n8dOQlGrSpQEEM-rkk2XLjU&si=H9e52JOhuW8eN468 #減肥 #情緒性飲食 145 Views 7 Likes 1 Comments 0:03:22 便便市民的遊樂園大塞車|膳食纖維不足 便秘日常 07/28/2025 關於便秘與膳食纖維的小影片。 部分內容參考自《蔬食營養聖經》(Brenda Davis & Vesanto Melina 著),本影片內容僅供知識參考,非專業醫療或營養建議,請依個人狀況諮詢專業人士。 本集重點 00:00 大腸市主題樂園開幕 00:22 救命啊!遊樂園大塞車 01:32 纖維神隊友,集合 |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f |健康小筆記| https://youtube.com/playlist?list=PL2xaindKE8n8dOQlGrSpQEEM-rkk2XLjU&si=H9e52JOhuW8eN468 #便秘 #膳食纖維 111 Views 11 Likes 5 Comments 0:02:35 身為資深乾眼人,這些是我的心得和小筆記|別讓眼睛再乾澀、疲勞了 07/18/2025 你是不是也常覺得眼睛又乾又酸呢? 讓眼睛好好放鬆,真的很重要~👀✨ 我發現只要用眼時間一拉長,接下來幾天眼睛就會特別容易酸。 熱敷一下會舒服很多,醫生也建議,用眼一小時就要休息一次。 我平常會用番茄鐘,但有時候一埋頭工作,就會略過休息時間… 你也有這樣的經驗嗎? 本影片內容僅供知識參考,非專業醫療或營養建議,請依個人狀況諮詢專業人士。 |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f |健康小筆記| https://youtube.com/playlist?list=PL2xaindKE8n8dOQlGrSpQEEM-rkk2XLjU&si=H9e52JOhuW8eN468 #乾眼 #眼睛乾澀 208 Views 9 Likes 1 Comments 0:02:06 吃豆類一定會脹氣?豆類這樣吃,蛋白質好吸收又不脹氣 06/23/2025 植物性蛋白質營養豐富,可是擔心吃完肚子容易脹氣嗎😫? 小象工人在忙什麼呢? 一起來潛入蛋白質工廠,看看怎麼處理這問題 影片中提到讓肚子不舒服的「鎧甲」,其中一種主要成分是「寡糖」。寡糖不容易被人體小腸消化,會直接進入大腸,由腸道菌分解,這個過程容易產生氣體。 寡糖是水溶性的,也不耐高溫,所以透過泡水(要記得換水)和充分煮熟,可以減少它的含量,讓豆子吃起來比較不會脹氣。 部分內容參考自《純素時代來臨》(Brenda Davis & Vesanto Melina 著),本影片內容僅供知識參考,非專業醫療或營養建議,請依個人狀況諮詢專業人士。 |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f |健康小筆記| https://youtube.com/playlist?list=PL2xaindKE8n8dOQlGrSpQEEM-rkk2XLjU&si=H9e52JOhuW8eN468 #豆類脹氣 #如何煮豆子 102 Views 9 Likes 8 Comments 0:04:02 想到煮飯就累?😫 試試一鍋到底,讓你脫離洗碗地獄~ 05/10/2025 森林咖啡廳的廚房裡,傳來丁鈴噹啷的聲音... 🍳 原來是正在準備餐點的橘貓,看著一堆鍋子手忙腳亂。 想到煮飯就好累、要洗一堆鍋碗瓢盆就很麻煩? 如果能輕鬆做料理,是不是就有動力自己煮了~ 「機器人糊糊」從資料庫找出了「一鍋到底」的料理方法,非常適合新手,不只省時省力,還有很多意想不到的好處哦!一起讓烹飪變得輕鬆又美味 🍲✨ 00:00 開場 01:04 概念 01:26 效率 01:54 風味 02:12 營養 02:42 規劃 03:39 實驗室 |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f |音樂集| https://www.youtube.com/playlist?list=PL2xaindKE8n-Zi4kb_WaVKO4NuyYjcItF https://www.youtube.com/playlist?list=PL2xaindKE8n8QlzjPXZythmx5Y5MswR8r |糊糊的健康小筆記| https://youtube.com/playlist?list=PL2xaindKE8n8dOQlGrSpQEEM-rkk2XLjU&si=H9e52JOhuW8eN468 #料理技巧 #新手料理 428 Views 10 Likes 10 Comments 0:02:55 什麼時候喝水最剛好?糊糊告訴你,這樣喝精神差很多! 05/03/2025 今天森林咖啡廳裡很熱鬧,坐滿了客人。 店裡面的「機器人糊糊」觀察到一個現象,很多客人在點咖啡或茶的時候,也會多要一杯水 🚰 這件我們每天都在做的小事,對身體究竟有哪些幫助呢?(就像幫機器補充能源一樣重要嗎?) 這次的影片,糊糊從森林咖啡廳的日常觀察出發,和你分享為什麼需要好好喝水,以及一些能簡單融入生活的健康喝水習慣跟小方法。我還畫了簡單的喝水時間表,讓我們一起來養成好好喝水的習慣~💪💪💪 ❗重要提示 資訊僅供參考,無法取代專業意見。 若有健康、營養或特殊飲食需求,請諮詢專家。 |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f |音樂集| https://www.youtube.com/playlist?list=PL2xaindKE8n-Zi4kb_WaVKO4NuyYjcItF https://www.youtube.com/playlist?list=PL2xaindKE8n8QlzjPXZythmx5Y5MswR8r |糊糊的健康小筆記| https://youtube.com/playlist?list=PL2xaindKE8n8dOQlGrSpQEEM-rkk2XLjU&si=H9e52JOhuW8eN468 #健康飲水 #生活習慣 447 Views 10 Likes 5 Comments 0:02:17 吃水果為什麼反而更累?3個你沒注意的小陷阱 04/24/2025 🐱🐘 橘貓與小象友情出演,希望用可愛的方式,讓大家輕鬆理解影片內容~ 你也有吃完水果後反而想睡、精神不濟的經驗嗎? 為什麼明明是天然的水果,卻會讓身體更疲勞? 這部影片從水果中的糖分、GI值與血糖波動談起,破解你對「健康水果」的迷思。 🛑 特別提醒:肝功能異常者與糖尿病患者在攝取水果時,需更加注意血糖變化與食用方式,建議諮詢專業醫師建議。 |音樂集| https://www.youtube.com/playlist?list=PL2xaindKE8n-Zi4kb_WaVKO4NuyYjcItF https://www.youtube.com/playlist?list=PL2xaindKE8n8QlzjPXZythmx5Y5MswR8r |橘貓的每日特餐| https://www.youtube.com/playlist?list=PL2xaindKE8n8vqZLv3t41q17U-jDnM9Fr https://www.youtube.com/playlist?list=PL2xaindKE8n8j7dL37NMac8-zMBiyH_2f #水果 #健康飲食 72 Views 10 Likes 15 Comments 選擇項目後,整個頁面將重新整理。 在新視窗中開啟。 額外的結構化內容: • Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 Iru 的加油打氣馬克杯 (可愛/送禮)|來自小象工廠的溫暖直送 定價 從 $380.00 TWD 起 定價 售價 從 $380.00 TWD 起 • 吊帶褲小象防水貼紙 吊帶褲小象防水貼紙 定價 $120.00 TWD 定價 售價 $120.00 TWD • 呆萌小象防水貼紙 呆萌小象防水貼紙 定價 $90.00 TWD 定價 售價 $90.00 TWD • 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 星空黑 定價 $990.00 TWD 定價 售價 $990.00 TWD • 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 小象散步棒球帽|刺繡老帽|陪你度過每個好日子 - 燕麥牛奶 定價 $990.00 TWD 定價 售價 $990.00 TWD • 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 小象日常隨行袋|100%純棉帆布托特包|輕鬆收納好生活 定價 $580.00 TWD 定價 售價 $580.00 TWD • 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 小象的泡泡糖工作站|純棉短袖 T恤|日常穿搭 定價 $880.00 TWD 定價 售價 $880.00 TWD • 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 小象能量保溫瓶|可愛古露露插圖不鏽鋼水壺 定價 從 $1,090.00 TWD 起 定價 售價 從 $1,090.00 TWD 起 • 選擇項目後,整個頁面將重新整理。 • 在新視窗中開啟。 2025-10-14 15:34:38 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=75):已完成 10/10 個網址 2025-10-14 15:34:38 - INFO - main - [url_processor.py:266] - process_url - UI審核: 開始審核主頁面: https://gululuart.com/pages/contact 2025-10-14 15:34:38 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 419 字符 2025-10-14 15:34:38 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:34:44 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:34:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:34:55 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:34:55 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 17.476秒 2025-10-14 15:34:55 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 43 字符, 總耗時: 17.527秒 2025-10-14 15:34:55 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:34:55 - INFO - main - [url_processor.py:305] - process_url - UI審核: 主頁面審核通過: https://gululuart.com/pages/contact 2025-10-14 15:34:55 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 1/9: https://gululuart.com/pages/contact 2025-10-14 15:34:55 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 419 字符 2025-10-14 15:34:55 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:35:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:35:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:35:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:35:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:35:04 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:35:04 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 8.366秒 2025-10-14 15:35:04 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 8.417秒 2025-10-14 15:35:04 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:35:04 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/pages/contact 2025-10-14 15:35:04 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 2/9: https://gululuart.com/collections/all 2025-10-14 15:35:04 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1516 字符 2025-10-14 15:35:04 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:35:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:35:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:35:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:35:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:35:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:35:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:35:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:35:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:35:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:35:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:35:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:35:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:35:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:35:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:35:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:35:13 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:35:13 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 8.972秒 2025-10-14 15:35:13 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 9.024秒 2025-10-14 15:35:13 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:35:13 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/collections/all 2025-10-14 15:35:13 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 3/9: https://gululuart.com/cart 2025-10-14 15:35:13 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 277 字符 2025-10-14 15:35:13 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:35:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:35:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:35:14 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:35:24 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:35:26 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:35:26 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 13.057秒 2025-10-14 15:35:26 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 13.108秒 2025-10-14 15:35:26 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:35:26 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/cart 2025-10-14 15:35:26 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 4/9: https://gululuart.com/policies/contact-information 2025-10-14 15:35:26 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 332 字符 2025-10-14 15:35:26 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:35:33 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:35:33 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.368秒 2025-10-14 15:35:33 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 7.418秒 2025-10-14 15:35:33 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:35:33 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/policies/contact-information 2025-10-14 15:35:33 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 5/9: https://gululuart.com/policies/shipping-policy 2025-10-14 15:35:33 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 831 字符 2025-10-14 15:35:33 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:35:35 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:35:45 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:35:51 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:35:51 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 18.162秒 2025-10-14 15:35:51 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 18.213秒 2025-10-14 15:35:51 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:35:51 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/policies/shipping-policy 2025-10-14 15:35:51 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 6/9: https://gululuart.com/policies/refund-policy 2025-10-14 15:35:51 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 453 字符 2025-10-14 15:35:52 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:35:55 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:36:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:36:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:36:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:36:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:36:05 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:36:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:36:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:36:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:36:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:36:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:36:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:36:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:36:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:36:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:36:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-14 15:36:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:36:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:36:15 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:36:17 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:36:17 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 25.108秒 2025-10-14 15:36:17 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 25.158秒 2025-10-14 15:36:17 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:36:17 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/policies/refund-policy 2025-10-14 15:36:17 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 7/9: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:36:17 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 771 字符 2025-10-14 15:36:17 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:36:25 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:36:28 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:36:28 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 11.497秒 2025-10-14 15:36:28 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 46 字符, 總耗時: 11.548秒 2025-10-14 15:36:28 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:36:28 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/pages/%E9%97%9C%E6%96%BC%E6%88%91%E5%80%91 2025-10-14 15:36:28 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 8/9: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:36:28 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 860 字符 2025-10-14 15:36:28 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:36:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:36:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:36:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:36:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:36:35 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:36:45 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:36:55 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:05 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:37:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:37:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:37:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:37:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:37:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:37:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:37:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:37:15 - ERROR - main - [main.py:200] - handle_api_exception - 網頁錯誤 [/]: 405 Method Not Allowed: The method is not allowed for the requested URL. Traceback (most recent call last): File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/app.py", line 917, in full_dispatch_request rv = self.dispatch_request() ^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/app.py", line 891, in dispatch_request self.raise_routing_exception(req) File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/app.py", line 500, in raise_routing_exception raise request.routing_exception # type: ignore[misc] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/ctx.py", line 362, in match_request result = self.url_adapter.match(return_rule=True) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/werkzeug/routing/map.py", line 624, in match raise MethodNotAllowed(valid_methods=list(e.have_match_for)) from None werkzeug.exceptions.MethodNotAllowed: 405 Method Not Allowed: The method is not allowed for the requested URL. 2025-10-14 15:37:15 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:26 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:28 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:37:28 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 59.373秒 2025-10-14 15:37:28 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 59.424秒 2025-10-14 15:37:28 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:37:28 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/pages/%E5%B8%B8%E8%A6%8B%E5%95%8F%E9%A1%8C-q-a 2025-10-14 15:37:28 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 9/9: https://gululuart.com/ 2025-10-14 15:37:28 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 6187 字符 2025-10-14 15:37:28 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:37:36 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:46 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:55 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:37:55 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 27.338秒 2025-10-14 15:37:55 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 44 字符, 總耗時: 27.389秒 2025-10-14 15:37:55 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 網頁內容審查結論:審核通過... 2025-10-14 15:37:55 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://gululuart.com/ 2025-10-14 15:37:55 - INFO - main - [url_processor.py:376] - process_url - 開始判斷主頁面購物車功能 2025-10-14 15:37:55 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:37:55 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 419 字符 2025-10-14 15:37:55 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:37:57 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:37:58 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:37:58 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 2.819秒 2025-10-14 15:37:58 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 2.870秒 2025-10-14 15:37:58 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-14 15:37:58 - INFO - main - [url_processor.py:379] - process_url - 主頁面購物車判斷: 無購物車功能 2025-10-14 15:37:58 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 1/9 購物車功能 2025-10-14 15:37:58 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:37:58 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 419 字符 2025-10-14 15:37:58 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:00 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:00 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 2.228秒 2025-10-14 15:38:00 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 2.279秒 2025-10-14 15:38:00 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-14 15:38:00 - INFO - main - [url_processor.py:390] - process_url - 子頁面 1 購物車判斷: 無購物車功能 2025-10-14 15:38:00 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 2/9 購物車功能 2025-10-14 15:38:00 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:00 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1516 字符 2025-10-14 15:38:00 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:38:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:38:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:38:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 2, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:38:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:38:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:38:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:38:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:38:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:38:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:38:07 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:07 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.516秒 2025-10-14 15:38:07 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 6.566秒 2025-10-14 15:38:07 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-14 15:38:07 - INFO - main - [url_processor.py:390] - process_url - 子頁面 2 購物車判斷: 有購物車功能 2025-10-14 15:38:07 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 3/9 購物車功能 2025-10-14 15:38:07 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:07 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 277 字符 2025-10-14 15:38:07 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:08 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:38:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:38:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:38:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:38:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:38:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:38:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:38:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:38:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:38:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:38:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:38:14 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:14 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.986秒 2025-10-14 15:38:14 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.037秒 2025-10-14 15:38:14 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-14 15:38:14 - INFO - main - [url_processor.py:390] - process_url - 子頁面 3 購物車判斷: 有購物車功能 2025-10-14 15:38:14 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 4/9 購物車功能 2025-10-14 15:38:14 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:14 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 332 字符 2025-10-14 15:38:14 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:16 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:16 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 2.136秒 2025-10-14 15:38:16 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 2.187秒 2025-10-14 15:38:16 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-14 15:38:16 - INFO - main - [url_processor.py:390] - process_url - 子頁面 4 購物車判斷: 無購物車功能 2025-10-14 15:38:16 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 5/9 購物車功能 2025-10-14 15:38:16 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:16 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 831 字符 2025-10-14 15:38:16 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:19 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:38:21 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:21 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 4.976秒 2025-10-14 15:38:21 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.026秒 2025-10-14 15:38:21 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-14 15:38:21 - INFO - main - [url_processor.py:390] - process_url - 子頁面 5 購物車判斷: 有購物車功能 2025-10-14 15:38:21 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 6/9 購物車功能 2025-10-14 15:38:21 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:21 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 453 字符 2025-10-14 15:38:21 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:24 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:24 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 3.331秒 2025-10-14 15:38:24 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 3.381秒 2025-10-14 15:38:24 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-14 15:38:24 - INFO - main - [url_processor.py:390] - process_url - 子頁面 6 購物車判斷: 無購物車功能 2025-10-14 15:38:24 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 7/9 購物車功能 2025-10-14 15:38:24 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:24 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 771 字符 2025-10-14 15:38:24 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:28 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:28 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 3.757秒 2025-10-14 15:38:28 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 3.806秒 2025-10-14 15:38:28 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-14 15:38:28 - INFO - main - [url_processor.py:390] - process_url - 子頁面 7 購物車判斷: 有購物車功能 2025-10-14 15:38:28 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 8/9 購物車功能 2025-10-14 15:38:28 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:28 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 860 字符 2025-10-14 15:38:28 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:30 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:38:32 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:32 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 3.502秒 2025-10-14 15:38:32 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 3.553秒 2025-10-14 15:38:32 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-14 15:38:32 - INFO - main - [url_processor.py:390] - process_url - 子頁面 8 購物車判斷: 無購物車功能 2025-10-14 15:38:32 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 9/9 購物車功能 2025-10-14 15:38:32 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-14 15:38:32 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 6187 字符 2025-10-14 15:38:32 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-14 15:38:39 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-14 15:38:39 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.371秒 2025-10-14 15:38:39 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.422秒 2025-10-14 15:38:39 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-14 15:38:39 - INFO - main - [url_processor.py:390] - process_url - 子頁面 9 購物車判斷: 有購物車功能 2025-10-14 15:38:39 - INFO - main - [url_processor.py:402] - process_url - 最終購物車判斷結果: 有購物車功能 (檢查了 10 個頁面) 2025-10-14 15:38:39 - INFO - main - [url_processor.py:423] - process_url - 審核通過:10 個頁面通過,0 個頁面被模型拒審(已忽略) 2025-10-14 15:38:39 - INFO - main - [helpers.py:223] - _find_email_in_content - 找到電子郵件 happygululu@gmail.com (完全匹配) 2025-10-14 15:38:39 - INFO - main - [url_processor.py:525] - process_url - URL ID 75 是 UI 提交,使用 URL 記錄中的聯絡資訊進行驗證 2025-10-14 15:38:39 - INFO - main - [helpers.py:223] - _find_email_in_content - 找到電子郵件 happygululu@gmail.com (完全匹配) 2025-10-14 15:38:39 - INFO - main - [url_processor.py:545] - process_url - UI審核(URL ID=75):身份驗證通過 2025-10-14 15:38:39 - INFO - database - [database.py:505] - update_url_status - URL ID 75 状态已更新为 completed 2025-10-14 15:38:39 - INFO - main - [url_processor.py:609] - process_url - URL ID 75 分析完成,結果: pass, API驗證: False 2025-10-14 15:38:39 - INFO - main - [url_processor.py:634] - process_url - 工作線程 #1 完成處理 URL ID: 75 2025-10-14 15:38:41 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 75, UID: q42qv1vdwc, 進度: 10/10 2025-10-14 15:38:41 - ERROR - main - [web_routes.py:200] - result - 显示结果页面失败: No test named '購物車功能:'. Traceback (most recent call last): File "/opt/urlanalyze/routes/web_routes.py", line 197, in result return render_template('result.html', result=result_dict, api_info=api_info, ui_info=ui_info, violations=violations, TAIPEI_TIMEZONE=TAIPEI_TIMEZONE) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/templating.py", line 150, in render_template return _render(app, template, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/flask/templating.py", line 131, in _render rv = template.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 1295, in render self.environment.handle_exception() File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 942, in handle_exception raise rewrite_traceback_stack(source=source) File "/opt/urlanalyze/templates/result.html", line 1, in top-level template code {% extends "base.html" %} File "/opt/urlanalyze/templates/base.html", line 59, in top-level template code {% block content %}{% endblock %} ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/templates/result.html", line 69, in block 'content' {% set cart_line = result.details.split('\n') | selectattr('contains', '購物車功能:') | list | first %} ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/async_utils.py", line 48, in wrapper return normal_func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1365, in sync_do_list return list(value) ^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1798, in select_or_reject if func(item): ^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1783, in <lambda> return lambda item: modfunc(func(transfunc(item))) ^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/filters.py", line 1778, in func return context.environment.call_test(name, item, args, kwargs, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 594, in call_test return self._filter_test_common( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/urlanalyze/venv/lib/python3.11/site-packages/jinja2/environment.py", line 526, in _filter_test_common raise TemplateRuntimeError(msg) jinja2.exceptions.TemplateRuntimeError: No test named '購物車功能:'. 2025-10-14 15:39:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:39:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:39:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:39:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:39:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:39:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:39:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:39:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:39:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:39:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:39:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:39:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:39:50 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:39:50 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:39:50 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:39:50 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:39:50 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:39:50 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:39:51 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-14 15:39:51 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:40:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:40:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:40:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:40:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:40:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:40:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:40:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:40:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:41:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:41:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:41:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:41:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:41:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:41:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:41:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:41:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:41:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:41:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:41:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:41:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:41:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:41:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:41:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:41:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:41:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:41:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:41:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:41:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:41:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:41:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:41:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:41:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-14 15:41:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-14 15:41:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-14 15:41:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:41:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:42:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:42:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:42:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:42:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:42:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:42:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:42:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:42:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:42:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:42:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:42:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:42:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:43:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:43:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:43:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:43:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:43:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:43:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:43:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:43:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:44:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:44:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:44:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:44:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:44:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:44:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:44:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:44:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:44:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:44:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:44:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:44:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:44:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:44:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:44:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:44:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:44:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:44:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:44:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:44:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:45:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:45:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:45:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:45:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:45:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:45:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:45:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:45:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:45:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:45:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:45:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:45:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:46:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:46:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:46:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:46:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:46:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:46:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:46:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:46:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:46:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:46:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:46:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:46:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:46:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:46:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-14 15:46:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:46:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:47:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:47:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:47:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:47:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:47:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:47:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:47:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:47:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:47:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:47:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:47:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:47:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:47:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:47:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:47:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:47:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:47:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:47:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:47:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:47:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:48:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:48:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:48:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:48:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:48:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:48:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:48:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:48:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:48:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:48:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:48:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:48:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:49:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:49:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:49:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:49:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:49:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:49:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:49:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:49:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:50:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:50:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:50:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:50:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:50:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:50:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:50:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:50:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:50:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:50:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:50:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:50:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:50:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:50:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:50:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:50:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:50:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:50:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:50:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:50:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:51:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:51:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:51:04 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:51:04 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:51:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:51:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:51:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:51:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:51:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:51:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:51:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:51:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:51:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:51:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-14 15:51:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:51:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-14 15:51:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:51:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:51:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:51:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:52:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:52:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:52:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:52:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:52:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:52:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-14 15:52:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:52:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:53:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:53:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:53:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:53:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:53:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:53:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:53:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:53:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:53:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:53:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:53:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:53:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:53:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:53:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:53:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:53:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:53:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:53:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:53:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:53:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:54:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:54:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:54:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:54:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:54:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:54:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:54:14 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:54:14 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:54:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:54:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:54:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:54:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:55:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:55:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:55:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:55:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:55:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:55:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:55:15 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:55:15 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:56:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:56:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:56:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:56:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:56:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:56:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:56:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:56:05 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:56:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:56:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:56:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:56:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:56:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:56:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:56:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:56:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:56:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 15:56:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-14 15:56:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:56:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:56:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:56:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:56:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:56:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:56:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-14 15:56:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:56:15 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:56:15 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-14 15:57:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:57:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:57:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:57:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:57:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:57:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:57:15 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:57:15 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:57:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:57:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:57:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:57:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:58:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:58:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:58:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:58:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:58:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:58:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:58:15 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:58:15 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:59:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 15:59:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 15:59:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 15:59:03 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 15:59:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:59:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:59:06 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:59:06 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:59:07 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:59:07 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:59:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-14 15:59:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-14 15:59:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:59:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:59:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:59:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:59:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:59:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 15:59:15 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 15:59:15 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 16:00:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 16:00:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 16:00:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 16:00:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 16:00:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 16:00:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 16:00:15 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-14 16:00:15 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-14 16:00:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.6MB, CPU 0.0% 2025-10-14 16:00:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 128.0MB, CPU 0.0% 2025-10-14 16:00:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 3, 記憶體 200.7MB, CPU 0.0% 2025-10-14 16:00:33 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 127.9MB, CPU 0.0% 2025-10-14 16:01:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 16:01:03 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251014_15.log,新:20251014_16.log 2025-10-14 16:01:05 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 16:01:05 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251014_15.log,新:20251014_16.log 2025-10-14 16:01:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 16:01:09 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251014_15.log,新:20251014_16.log 2025-10-14 16:01:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-14 16:01:09 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251014_15.log,新:20251014_16.log