日誌查看 - 20251013_21.log
文件大小: 352.42 KB 最後修改: 2025-10-13 22:00:09
2025-10-13 21:04:59 - 初始化新小時日誌檔案 2025-10-13 21:04:59 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_21.log 2025-10-13 21:04:59 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 21:04:59 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:04:59 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_21.log 2025-10-13 21:04:59 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 21:04:59 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 21:05:00 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_21.log 2025-10-13 21:05:00 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_21.log 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:05:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:05:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:05:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:05:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:05:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:06:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:06:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:06:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:06:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:06:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:07:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:08:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:08:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:08:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:08:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:08:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:09:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:09:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:09:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:09:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:09:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:09:46 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:10:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:11:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:11:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:11:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:11:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:11:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:12:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:12:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:12:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:12:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:12:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:12:47 - 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-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:13:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:14:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:14:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:14:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:14:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:14:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:15:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:15:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:15:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:15:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:15:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:15:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:16:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:16:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:17:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:17:00 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:17:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:17:00 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:17:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:17:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:17:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:17:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:17:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:17:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:17:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:17:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:18:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:18:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:18:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:18:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:18:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:19:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.12 秒,結果: 0 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.12 秒,結果: 0 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-13 21:20:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-13 21:20:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:20:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:20:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:20:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:21:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:21:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:21:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:21:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:21:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:22:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:23:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:23:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:23:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:23:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:23:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:24:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:24:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:24:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:24:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:24:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:25:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:26:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:26:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:26:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:26:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:26:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:26:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:26:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:26:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:26:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:26:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:26:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.0MB, CPU 0.0% 2025-10-13 21:26:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:27:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:27:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:27:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:27:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:27:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:27:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:27:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:27:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:27:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:27:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:27:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 126.2MB, CPU 0.0% 2025-10-13 21:27:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:27:52 - INFO - database - [database.py:420] - process_url - UI 提交生成 UID: 1bmeiy3qsj 2025-10-13 21:27:52 - INFO - database - [database.py:426] - process_url - UI 提交 URL https://www.tesla.com/zh_tw,結果將立即顯示 2025-10-13 21:27:52 - INFO - main - [web_routes.py:115] - submit_url - UI 提交,URL ID: 69, Phone: 1111111111, Email: 2025-10-13 21:27:52 - INFO - database - [database.py:536] - get_pending_url - 找到待处理的 URL: ID=69, URL=https://www.tesla.com/zh_tw 2025-10-13 21:27:52 - INFO - main - [request_processor.py:690] - process_pending_urls - 已添加 1 個 URL 到處理隊列 2025-10-13 21:27:52 - INFO - main - [url_processor.py:42] - process_url - 工作線程 #1 開始處理 URL ID: 69 2025-10-13 21:27:52 - INFO - main - [url_processor.py:83] - process_url - 分析 URL: https://www.tesla.com/zh_tw 2025-10-13 21:27:52 - INFO - main - [url_processor.py:97] - process_url - 嘗試獲取網頁內容 (嘗試 1/3, force_new_driver=False) 2025-10-13 21:27:52 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.tesla.com/zh_tw, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:27:52 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:27:52 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.tesla.com/zh_tw 的第 1/3 次請求 2025-10-13 21:27:52 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:27:52 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:27:52 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:27:52 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:27:52 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:27:52 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:27:52 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:27:52 - 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-13 21:27:52 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:27:52 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:27:52 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:27: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-13 21:27: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 0x5a129c9464e3 <unknown> #1 0x5a129c675c76 <unknown> #2 0x5a129c69ed78 <unknown> #3 0x5a129c69b029 <unknown> #4 0x5a129c6d9ccc <unknown> #5 0x5a129c6d947f <unknown> #6 0x5a129c6d0de3 <unknown> #7 0x5a129c6a62dd <unknown> #8 0x5a129c6a734e <unknown> #9 0x5a129c9063e4 <unknown> #10 0x5a129c90a3d7 <unknown> #11 0x5a129c914b20 <unknown> #12 0x5a129c90b023 <unknown> #13 0x5a129c8d91aa <unknown> #14 0x5a129c92f6b8 <unknown> #15 0x5a129c92f847 <unknown> #16 0x5a129c93f243 <unknown> #17 0x74253b294ac3 <unknown> 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:27:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.tesla.com/zh_tw 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:1124] - get_content - 等待頁面基本加載完成: https://www.tesla.com/zh_tw 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:1131] - get_content - 頁面body元素已加載 2025-10-13 21:27:53 - INFO - WebScraper - [scraper.py:1144] - get_content - 頁面加載狀態: complete 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:28:01 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:28:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:28:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:28:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:28:18 - INFO - WebScraper - [scraper.py:1168] - get_content - 未找到任何主要內容元素,頁面可能使用非標準結構 2025-10-13 21:28:18 - INFO - WebScraper - [scraper.py:1172] - get_content - 頁面基本加載完成: https://www.tesla.com/zh_tw 2025-10-13 21:28:20 - INFO - WebScraper - [scraper.py:1182] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:28:20 - INFO - WebScraper - [scraper.py:1190] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:28:20 - INFO - WebScraper - [scraper.py:1743] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:28:20 - INFO - WebScraper - [scraper.py:1754] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:28:24 - INFO - WebScraper - [scraper.py:1204] - get_content - 初始可見元素數量: 4 2025-10-13 21:28:25 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:28:26 - INFO - WebScraper - [scraper.py:1214] - get_content - 元素數量穩定: 4,內容可能已加載完成 2025-10-13 21:28:26 - INFO - WebScraper - [scraper.py:1221] - get_content - 等待可能的動態內容... 2025-10-13 21:28:36 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:28:44 - WARNING - WebScraper - [scraper.py:1253] - get_content - 頁面內容太短 (296 字節),嘗試額外優化 2025-10-13 21:28:46 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:28:56 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 0/1 2025-10-13 21:28:56 - INFO - WebScraper - [scraper.py:1779] - _scroll_to_load_content - 頁面太短,無需滾動 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:1287] - get_content - 成功獲取 URL 內容: https://www.tesla.com/zh_tw (實際 URL: https://www.tesla.com/zh_tw) 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:1485] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 137911709360960: 關閉 WebDriver 實例 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:1492] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:28:59 - INFO - database - [database.py:505] - update_url_status - URL ID 69 状态已更新为 processing 2025-10-13 21:28:59 - INFO - WebScraper - [scraper.py:1897] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 296 字節 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:1909] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 103 字節 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:1934] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 198 字節 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2107] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2107] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2118] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2143] - extract_text_from_html - 已成功提取文本,總長度: 103 字節,約 3 個詞,2 行 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2144] - extract_text_from_html - 提取的最終文本內容: Reference #18.b7043e17.1760362073.14ef6143 https://errors.edgesuite.net/18.b7043e17.1760362073.14ef6143 2025-10-13 21:29:00 - INFO - ContentAnalyzer - [analyzer.py:310] - check_specific_issues - 開始檢查網頁特定問題: URL=https://www.tesla.com/zh_tw, HTML 內容大小=296 字節 2025-10-13 21:29:00 - INFO - ContentAnalyzer - [analyzer.py:676] - check_specific_issues - 網頁特定問題檢查完成: URL=https://www.tesla.com/zh_tw, 發現問題數=0, 嚴重問題數=0, 耗時=0.001秒 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2488] - find_internal_links - 從HTML靜態內容中提取了 0 個內部鏈接 2025-10-13 21:29:00 - INFO - WebScraper - [scraper.py:2652] - find_internal_links - 總共找到 0 個有效內部鏈接 2025-10-13 21:29:00 - INFO - main - [url_processor.py:153] - process_url - 找到 0 個內部鏈接,最大深度2層 2025-10-13 21:29:00 - INFO - main - [url_processor.py:179] - process_url - 更新 UI 審核進度(URL ID=69):總計 1 個網址,已完成 1 個(主頁面) 2025-10-13 21:29:00 - INFO - main - [url_processor.py:266] - process_url - UI審核: 開始審核主頁面: https://www.tesla.com/zh_tw 2025-10-13 21:29:00 - INFO - ContentAnalyzer - [analyzer.py:892] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 103 字符 2025-10-13 21:29:00 - INFO - ContentAnalyzer - [analyzer.py:942] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:29:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:29:06 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 1/1 2025-10-13 21:29:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:29:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:29:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 170.7MB, CPU 0.0% 2025-10-13 21:29:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:29:16 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 1/1 2025-10-13 21:29:22 - 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-13 21:29:22 - INFO - ContentAnalyzer - [analyzer.py:966] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 21.991秒 2025-10-13 21:29:22 - INFO - ContentAnalyzer - [analyzer.py:974] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 39 字符, 總耗時: 22.146秒 2025-10-13 21:29:22 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過... 2025-10-13 21:29:22 - INFO - main - [url_processor.py:305] - process_url - UI審核: 主頁面審核通過: https://www.tesla.com/zh_tw 2025-10-13 21:29:22 - INFO - main - [url_processor.py:376] - process_url - 開始判斷主頁面購物車功能 2025-10-13 21:29:22 - ERROR - main - [url_processor.py:381] - process_url - 主頁面購物車判斷時出錯: 'ContentAnalyzer' object has no attribute 'check_shopping_cart' Traceback (most recent call last): File "/opt/urlanalyze/processing/url_processor.py", line 377, in process_url main_cart_result = content_analyzer.check_shopping_cart(extracted_text) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'ContentAnalyzer' object has no attribute 'check_shopping_cart' 2025-10-13 21:29:22 - INFO - main - [url_processor.py:402] - process_url - 最終購物車判斷結果: 無購物車功能 (檢查了 1 個頁面) 2025-10-13 21:29:22 - INFO - main - [url_processor.py:423] - process_url - 審核通過:1 個頁面通過,0 個頁面被模型拒審(已忽略) 2025-10-13 21:29:22 - INFO - main - [url_processor.py:525] - process_url - URL ID 69 是 UI 提交,使用 URL 記錄中的聯絡資訊進行驗證 2025-10-13 21:29:22 - WARNING - main - [url_processor.py:543] - process_url - UI審核(URL ID=69):身份驗證失敗,網頁上未找到聯絡資訊 2025-10-13 21:29:22 - INFO - database - [database.py:505] - update_url_status - URL ID 69 状态已更新为 completed 2025-10-13 21:29:22 - INFO - main - [url_processor.py:609] - process_url - URL ID 69 分析完成,結果: fail, API驗證: False 2025-10-13 21:29:22 - INFO - main - [url_processor.py:634] - process_url - 工作線程 #1 完成處理 URL ID: 69 2025-10-13 21:29:26 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 69, UID: 1bmeiy3qsj, 進度: 1/1 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:30:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.11 秒,結果: 0 2025-10-13 21:30:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:30:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:30:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 171.8MB, CPU 0.0% 2025-10-13 21:30:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:31:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:32:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:32:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:32:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:32:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 171.8MB, CPU 0.0% 2025-10-13 21:32:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:33:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:33:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:33:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:33:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 171.9MB, CPU 0.0% 2025-10-13 21:33:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:34:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:34:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:34:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:34:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:35:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:35:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:35:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:35:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:35:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:35:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:35:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:35:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 171.9MB, CPU 0.0% 2025-10-13 21:35:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:36:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:36:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:36:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:36:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:36:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:36:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:36:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:36:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 21:36:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:36:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:36:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 171.9MB, CPU 0.0% 2025-10-13 21:36:41 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:37:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:37:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:37:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:37:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:37:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:38:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:38:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:38:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:38:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:38:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:38:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:38:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:38:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:38:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:38:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:38:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 171.9MB, CPU 0.0% 2025-10-13 21:38:11 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 125.2MB, CPU 0.0% 2025-10-13 21:39:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:02 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:02 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:03 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:03 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:26 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:39:26 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:39:26 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:39:27 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:39:27 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:39:27 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:39:27 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:39:27 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:39:27 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:39:27 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:39:27 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:39:27 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:39:29 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:39:29 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:39:29 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:39:29 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:39:29 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:39:29 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:39:29 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:39:29 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:39:29 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.80GB 2025-10-13 21:39:29 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:39:29 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:39:29 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:39:29 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:39:29 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.80GB 2025-10-13 21:39:29 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:39:29 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:39:29 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:39:29 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:39:29 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:39:29 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:39:29 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:39:29 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:39:29 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:39:29 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:39:29 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:39:29 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:39:29 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:39:29 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:39:29 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:39:29 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:39:29 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:39:29 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:39:29 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:39:29 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:39:29 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:39:29 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:39:29 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:39:29 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 21:39:29 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:39:29 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:39:29 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:39:29 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 21:39:29 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:39:29 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:39:29 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:39:29 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:39:29 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:39:29 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:39:29 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:39:29 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:39:29 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:39:29 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:39:30 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:39:30 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:39:30 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:39:30 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:39:30 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:39:30 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:39:30 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:39:30 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:39:30 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:39:30 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:39:30 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:39:30 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:39:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:40:17 - INFO - database - [database.py:420] - process_url - UI 提交生成 UID: tc0k2zqti9 2025-10-13 21:40:17 - INFO - database - [database.py:426] - process_url - UI 提交 URL https://www.tesla.com/zh_tw,結果將立即顯示 2025-10-13 21:40:17 - INFO - database - [database.py:436] - process_url - URL https://www.tesla.com/zh_tw 已存在,但按照需求視為新提交進行審核 2025-10-13 21:40:17 - INFO - main - [web_routes.py:115] - submit_url - UI 提交,URL ID: 70, Phone: 11111111, Email: 2025-10-13 21:40:17 - INFO - database - [database.py:536] - get_pending_url - 找到待处理的 URL: ID=70, URL=https://www.tesla.com/zh_tw 2025-10-13 21:40:17 - INFO - main - [request_processor.py:690] - process_pending_urls - 已添加 1 個 URL 到處理隊列 2025-10-13 21:40:17 - INFO - main - [url_processor.py:42] - process_url - 工作線程 #1 開始處理 URL ID: 70 2025-10-13 21:40:17 - INFO - main - [url_processor.py:83] - process_url - 分析 URL: https://www.tesla.com/zh_tw 2025-10-13 21:40:17 - INFO - main - [url_processor.py:97] - process_url - 嘗試獲取網頁內容 (嘗試 1/3, force_new_driver=False) 2025-10-13 21:40:17 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.tesla.com/zh_tw, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:40:17 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:40:17 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.tesla.com/zh_tw 的第 1/3 次請求 2025-10-13 21:40:17 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:40:17 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:40:17 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:40:17 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:40:17 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:40:17 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:40:17 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:40:17 - 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-13 21:40:18 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:40:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:40:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:40:18 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:40:18 - 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 0x5afa8174e4e3 <unknown> #1 0x5afa8147dc76 <unknown> #2 0x5afa814a6d78 <unknown> #3 0x5afa814a3029 <unknown> #4 0x5afa814e1ccc <unknown> #5 0x5afa814e147f <unknown> #6 0x5afa814d8de3 <unknown> #7 0x5afa814ae2dd <unknown> #8 0x5afa814af34e <unknown> #9 0x5afa8170e3e4 <unknown> #10 0x5afa817123d7 <unknown> #11 0x5afa8171cb20 <unknown> #12 0x5afa81713023 <unknown> #13 0x5afa816e11aa <unknown> #14 0x5afa817376b8 <unknown> #15 0x5afa81737847 <unknown> #16 0x5afa81747243 <unknown> #17 0x7f5c3c494ac3 <unknown> 2025-10-13 21:40:18 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:40:18 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:40:19 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 0/1 2025-10-13 21:40:19 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:40:19 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.tesla.com/zh_tw 2025-10-13 21:40:19 - INFO - WebScraper - [scraper.py:1124] - get_content - 等待頁面基本加載完成: https://www.tesla.com/zh_tw 2025-10-13 21:40:19 - INFO - WebScraper - [scraper.py:1131] - get_content - 頁面body元素已加載 2025-10-13 21:40:19 - INFO - WebScraper - [scraper.py:1144] - get_content - 頁面加載狀態: complete 2025-10-13 21:40:29 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 0/1 2025-10-13 21:40:30 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:40:30 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:40:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:40:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:40:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:40:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:40:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:40:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:40:39 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 0/1 2025-10-13 21:40:43 - INFO - WebScraper - [scraper.py:1168] - get_content - 未找到任何主要內容元素,頁面可能使用非標準結構 2025-10-13 21:40:43 - INFO - WebScraper - [scraper.py:1172] - get_content - 頁面基本加載完成: https://www.tesla.com/zh_tw 2025-10-13 21:40:45 - INFO - WebScraper - [scraper.py:1182] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:40:45 - INFO - WebScraper - [scraper.py:1190] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:40:45 - INFO - WebScraper - [scraper.py:1743] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:40:45 - INFO - WebScraper - [scraper.py:1754] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:40:49 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 0/1 2025-10-13 21:40:49 - INFO - WebScraper - [scraper.py:1204] - get_content - 初始可見元素數量: 4 2025-10-13 21:40:51 - INFO - WebScraper - [scraper.py:1214] - get_content - 元素數量穩定: 4,內容可能已加載完成 2025-10-13 21:40:51 - INFO - WebScraper - [scraper.py:1221] - get_content - 等待可能的動態內容... 2025-10-13 21:40:59 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 0/1 2025-10-13 21:40:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:40:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.0MB, CPU 0.0% 2025-10-13 21:41:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.6MB, CPU 0.0% 2025-10-13 21:41:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 127.3MB, CPU 0.0% 2025-10-13 21:41:09 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 0/1 2025-10-13 21:41:09 - WARNING - WebScraper - [scraper.py:1253] - get_content - 頁面內容太短 (296 字節),嘗試額外優化 2025-10-13 21:41:22 - INFO - WebScraper - [scraper.py:1779] - _scroll_to_load_content - 頁面太短,無需滾動 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:1287] - get_content - 成功獲取 URL 內容: https://www.tesla.com/zh_tw (實際 URL: https://www.tesla.com/zh_tw) 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:1485] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123330670765184: 關閉 WebDriver 實例 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:1492] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:41:25 - INFO - database - [database.py:505] - update_url_status - URL ID 70 状态已更新为 processing 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:1897] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 296 字節 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:1909] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 103 字節 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:1934] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 198 字節 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2107] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2107] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2118] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2143] - extract_text_from_html - 已成功提取文本,總長度: 103 字節,約 3 個詞,2 行 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2144] - extract_text_from_html - 提取的最終文本內容: Reference #18.673d3117.1760362819.1a148585 https://errors.edgesuite.net/18.673d3117.1760362819.1a148585 2025-10-13 21:41:25 - INFO - ContentAnalyzer - [analyzer.py:310] - check_specific_issues - 開始檢查網頁特定問題: URL=https://www.tesla.com/zh_tw, HTML 內容大小=296 字節 2025-10-13 21:41:25 - INFO - ContentAnalyzer - [analyzer.py:676] - check_specific_issues - 網頁特定問題檢查完成: URL=https://www.tesla.com/zh_tw, 發現問題數=0, 嚴重問題數=0, 耗時=0.001秒 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2488] - find_internal_links - 從HTML靜態內容中提取了 0 個內部鏈接 2025-10-13 21:41:25 - INFO - WebScraper - [scraper.py:2652] - find_internal_links - 總共找到 0 個有效內部鏈接 2025-10-13 21:41:25 - INFO - main - [url_processor.py:153] - process_url - 找到 0 個內部鏈接,最大深度2層 2025-10-13 21:41:25 - INFO - main - [url_processor.py:179] - process_url - 更新 UI 審核進度(URL ID=70):總計 1 個網址,已完成 1 個(主頁面) 2025-10-13 21:41:25 - INFO - main - [url_processor.py:266] - process_url - UI審核: 開始審核主頁面: https://www.tesla.com/zh_tw 2025-10-13 21:41:25 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 103 字符 2025-10-13 21:41:25 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:41:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:41:36 - 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-13 21:41:36 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 11.246秒 2025-10-13 21:41:36 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 39 字符, 總耗時: 11.404秒 2025-10-13 21:41:36 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過... 2025-10-13 21:41:36 - INFO - main - [url_processor.py:305] - process_url - UI審核: 主頁面審核通過: https://www.tesla.com/zh_tw 2025-10-13 21:41:36 - INFO - main - [url_processor.py:376] - process_url - 開始判斷主頁面購物車功能 2025-10-13 21:41:36 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 21:41:36 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 103 字符 2025-10-13 21:41:36 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 21:41:42 - 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-13 21:41:42 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.959秒 2025-10-13 21:41:42 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 6.011秒 2025-10-13 21:41:42 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-13 21:41:42 - INFO - main - [url_processor.py:379] - process_url - 主頁面購物車判斷: 無購物車功能 2025-10-13 21:41:42 - INFO - main - [url_processor.py:402] - process_url - 最終購物車判斷結果: 無購物車功能 (檢查了 1 個頁面) 2025-10-13 21:41:42 - INFO - main - [url_processor.py:423] - process_url - 審核通過:1 個頁面通過,0 個頁面被模型拒審(已忽略) 2025-10-13 21:41:42 - INFO - main - [url_processor.py:525] - process_url - URL ID 70 是 UI 提交,使用 URL 記錄中的聯絡資訊進行驗證 2025-10-13 21:41:42 - WARNING - main - [url_processor.py:543] - process_url - UI審核(URL ID=70):身份驗證失敗,網頁上未找到聯絡資訊 2025-10-13 21:41:42 - INFO - database - [database.py:505] - update_url_status - URL ID 70 状态已更新为 completed 2025-10-13 21:41:42 - INFO - main - [url_processor.py:609] - process_url - URL ID 70 分析完成,結果: fail, API驗證: False 2025-10-13 21:41:42 - INFO - main - [url_processor.py:634] - process_url - 工作線程 #1 完成處理 URL ID: 70 2025-10-13 21:42:21 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 70, UID: tc0k2zqti9, 進度: 1/1 2025-10-13 21:42:29 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:42:29 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.1MB, CPU 0.0% 2025-10-13 21:42:30 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 140.6MB, CPU 0.0% 2025-10-13 21:42:30 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 181.8MB, CPU 0.0% 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:42:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:43:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:43:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:43:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.1MB, CPU 0.0% 2025-10-13 21:44:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 140.6MB, CPU 0.0% 2025-10-13 21:44:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 181.8MB, CPU 0.0% 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:44:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:45:29 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:45:29 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.1MB, CPU 0.0% 2025-10-13 21:45:30 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 140.6MB, CPU 0.0% 2025-10-13 21:45:30 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 181.8MB, CPU 0.0% 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:45:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:46:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:46:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:46:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:46:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:46:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:46:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:46:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:46:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:46:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:46:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.1MB, CPU 0.0% 2025-10-13 21:47:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 140.6MB, CPU 0.0% 2025-10-13 21:47:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 181.8MB, CPU 0.0% 2025-10-13 21:47:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:47:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:47:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:47:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:47:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:47:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:47:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:47:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:48:29 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:48:29 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.1MB, CPU 0.0% 2025-10-13 21:48:30 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 140.6MB, CPU 0.0% 2025-10-13 21:48:30 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 181.8MB, CPU 0.0% 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:48:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:48:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:48:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:48:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:48:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:49:31 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:49:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:49:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:49:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:49:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 21:49:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.2MB, CPU 0.0% 2025-10-13 21:49:59 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.1MB, CPU 0.0% 2025-10-13 21:50:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 140.6MB, CPU 0.0% 2025-10-13 21:50:00 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 181.8MB, CPU 0.0% 2025-10-13 21:50:04 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:50:04 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:50:04 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:50:04 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:50:04 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:50:04 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:50:04 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:50:04 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:50:04 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:50:04 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_21.log,路徑: Log/20251013_21.log 2025-10-13 21:50:04 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 21:50:04 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 21:50:06 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:50:06 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:50:06 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:50:06 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:50:06 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:50:06 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:50:06 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:50:07 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:50:07 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:50:07 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:50:07 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:50:07 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 21:50:07 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:50:07 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:50:07 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:50:07 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 21:50:07 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:50:07 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:50:07 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:50:07 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:50:07 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:50:07 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:50:07 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:50:07 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 21:50:07 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:50:07 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:50:07 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:50:07 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:50:07 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:50:07 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:50:07 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:50:07 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 21:50:07 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:50:07 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:50:07 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:50:07 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:50:07 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:50:07 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:50:07 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:50:07 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 21:50:07 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 21:50:07 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 21:50:07 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 21:50:07 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 21:50:07 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 21:50:07 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 21:50:07 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 21:50:07 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 21:50:07 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 21:50:07 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 21:50:07 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 21:50:07 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:50:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:50:55 - INFO - database - [database.py:420] - process_url - UI 提交生成 UID: c8755qyf0n 2025-10-13 21:50:55 - INFO - database - [database.py:426] - process_url - UI 提交 URL https://www.tesla.com/zh_tw,結果將立即顯示 2025-10-13 21:50:55 - INFO - database - [database.py:436] - process_url - URL https://www.tesla.com/zh_tw 已存在,但按照需求視為新提交進行審核 2025-10-13 21:50:55 - INFO - main - [web_routes.py:115] - submit_url - UI 提交,URL ID: 71, Phone: 111111111, Email: 2025-10-13 21:50:55 - INFO - database - [database.py:536] - get_pending_url - 找到待处理的 URL: ID=71, URL=https://www.tesla.com/zh_tw 2025-10-13 21:50:55 - INFO - main - [request_processor.py:690] - process_pending_urls - 已添加 1 個 URL 到處理隊列 2025-10-13 21:50:55 - INFO - main - [url_processor.py:42] - process_url - 工作線程 #1 開始處理 URL ID: 71 2025-10-13 21:50:55 - INFO - main - [url_processor.py:83] - process_url - 分析 URL: https://www.tesla.com/zh_tw 2025-10-13 21:50:55 - INFO - main - [url_processor.py:97] - process_url - 嘗試獲取網頁內容 (嘗試 1/3, force_new_driver=False) 2025-10-13 21:50:55 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.tesla.com/zh_tw, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:50:55 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:50:55 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.tesla.com/zh_tw 的第 1/3 次請求 2025-10-13 21:50:55 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:50:55 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:50:55 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:50:55 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:50:55 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:50:55 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:50:55 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:50:55 - 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-13 21:50:55 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:50:55 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:50:56 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:50:56 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:50:56 - 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 0x56bf66c1c4e3 <unknown> #1 0x56bf6694bc76 <unknown> #2 0x56bf66974d78 <unknown> #3 0x56bf66971029 <unknown> #4 0x56bf669afccc <unknown> #5 0x56bf669af47f <unknown> #6 0x56bf669a6de3 <unknown> #7 0x56bf6697c2dd <unknown> #8 0x56bf6697d34e <unknown> #9 0x56bf66bdc3e4 <unknown> #10 0x56bf66be03d7 <unknown> #11 0x56bf66beab20 <unknown> #12 0x56bf66be1023 <unknown> #13 0x56bf66baf1aa <unknown> #14 0x56bf66c056b8 <unknown> #15 0x56bf66c05847 <unknown> #16 0x56bf66c15243 <unknown> #17 0x7ef1d0694ac3 <unknown> 2025-10-13 21:50:56 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:50:56 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:50:56 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:50:56 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:50:56 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.tesla.com/zh_tw 2025-10-13 21:50:57 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.tesla.com/zh_tw 2025-10-13 21:50:57 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:50:57 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:51:07 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:51:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:51:17 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:51:21 - INFO - WebScraper - [scraper.py:1202] - get_content - 未找到任何主要內容元素,頁面可能使用非標準結構 2025-10-13 21:51:21 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.tesla.com/zh_tw 2025-10-13 21:51:22 - 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-13 21:51:23 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:51:23 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:51:23 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:51:23 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:51:27 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:51:27 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 4 2025-10-13 21:51:29 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 4,內容可能已加載完成 2025-10-13 21:51:29 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:51:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:51:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.0MB, CPU 0.0% 2025-10-13 21:51:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.0MB, CPU 0.0% 2025-10-13 21:51:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 127.3MB, CPU 0.0% 2025-10-13 21:51:37 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:51:47 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:51:47 - WARNING - WebScraper - [scraper.py:1287] - get_content - 頁面內容太短 (296 字節),嘗試額外優化 2025-10-13 21:51:57 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 0/1 2025-10-13 21:51:59 - INFO - WebScraper - [scraper.py:1813] - _scroll_to_load_content - 頁面太短,無需滾動 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.tesla.com/zh_tw (實際 URL: https://www.tesla.com/zh_tw) 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:52:02 - INFO - database - [database.py:505] - update_url_status - URL ID 71 状态已更新为 processing 2025-10-13 21:52:02 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 296 字節 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 103 字節 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 198 字節 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 trafilatura 作為最佳結果 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 103 字節,約 3 個詞,2 行 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: Reference #18.673d3117.1760363456.1a16e8c8 https://errors.edgesuite.net/18.673d3117.1760363456.1a16e8c8 2025-10-13 21:52:03 - INFO - ContentAnalyzer - [analyzer.py:310] - check_specific_issues - 開始檢查網頁特定問題: URL=https://www.tesla.com/zh_tw, HTML 內容大小=296 字節 2025-10-13 21:52:03 - INFO - ContentAnalyzer - [analyzer.py:676] - check_specific_issues - 網頁特定問題檢查完成: URL=https://www.tesla.com/zh_tw, 發現問題數=0, 嚴重問題數=0, 耗時=0.001秒 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2522] - find_internal_links - 從HTML靜態內容中提取了 0 個內部鏈接 2025-10-13 21:52:03 - INFO - WebScraper - [scraper.py:2686] - find_internal_links - 總共找到 0 個有效內部鏈接 2025-10-13 21:52:03 - INFO - main - [url_processor.py:153] - process_url - 找到 0 個內部鏈接,最大深度2層 2025-10-13 21:52:03 - INFO - main - [url_processor.py:179] - process_url - 更新 UI 審核進度(URL ID=71):總計 1 個網址,已完成 1 個(主頁面) 2025-10-13 21:52:03 - INFO - main - [url_processor.py:266] - process_url - UI審核: 開始審核主頁面: https://www.tesla.com/zh_tw 2025-10-13 21:52:03 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 103 字符 2025-10-13 21:52:03 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 21:52:07 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 1/1 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:52:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:52: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-13 21:52:13 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 10.329秒 2025-10-13 21:52:13 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 39 字符, 總耗時: 10.486秒 2025-10-13 21:52:13 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過... 2025-10-13 21:52:13 - INFO - main - [url_processor.py:305] - process_url - UI審核: 主頁面審核通過: https://www.tesla.com/zh_tw 2025-10-13 21:52:13 - INFO - main - [url_processor.py:376] - process_url - 開始判斷主頁面購物車功能 2025-10-13 21:52:13 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 21:52:13 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 103 字符 2025-10-13 21:52:13 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 21:52:17 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 1/1 2025-10-13 21:52:20 - 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-13 21:52:20 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.316秒 2025-10-13 21:52:20 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 6.367秒 2025-10-13 21:52:20 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 無購物車功能 2025-10-13 21:52:20 - INFO - main - [url_processor.py:379] - process_url - 主頁面購物車判斷: 無購物車功能 2025-10-13 21:52:20 - INFO - main - [url_processor.py:402] - process_url - 最終購物車判斷結果: 無購物車功能 (檢查了 1 個頁面) 2025-10-13 21:52:20 - INFO - main - [url_processor.py:423] - process_url - 審核通過:1 個頁面通過,0 個頁面被模型拒審(已忽略) 2025-10-13 21:52:20 - INFO - main - [url_processor.py:525] - process_url - URL ID 71 是 UI 提交,使用 URL 記錄中的聯絡資訊進行驗證 2025-10-13 21:52:20 - WARNING - main - [url_processor.py:543] - process_url - UI審核(URL ID=71):身份驗證失敗,網頁上未找到聯絡資訊 2025-10-13 21:52:20 - INFO - database - [database.py:505] - update_url_status - URL ID 71 状态已更新为 completed 2025-10-13 21:52:20 - INFO - main - [url_processor.py:609] - process_url - URL ID 71 分析完成,結果: fail, API驗證: False 2025-10-13 21:52:20 - INFO - main - [url_processor.py:634] - process_url - 工作線程 #1 完成處理 URL ID: 71 2025-10-13 21:52:28 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 71, UID: c8755qyf0n, 進度: 1/1 2025-10-13 21:53:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:53:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:53:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:53:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.2MB, CPU 0.0% 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:53:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:53:31 - INFO - database - [database.py:420] - process_url - UI 提交生成 UID: d6wu7ro9c7 2025-10-13 21:53:31 - INFO - database - [database.py:426] - process_url - UI 提交 URL https://www.garmin.com.tw/,結果將立即顯示 2025-10-13 21:53:31 - INFO - main - [web_routes.py:115] - submit_url - UI 提交,URL ID: 72, Phone: 1111111111, Email: 2025-10-13 21:53:31 - INFO - database - [database.py:536] - get_pending_url - 找到待处理的 URL: ID=72, URL=https://www.garmin.com.tw/ 2025-10-13 21:53:31 - INFO - main - [request_processor.py:690] - process_pending_urls - 已添加 1 個 URL 到處理隊列 2025-10-13 21:53:31 - INFO - main - [url_processor.py:42] - process_url - 工作線程 #1 開始處理 URL ID: 72 2025-10-13 21:53:31 - INFO - main - [url_processor.py:83] - process_url - 分析 URL: https://www.garmin.com.tw/ 2025-10-13 21:53:31 - INFO - main - [url_processor.py:97] - process_url - 嘗試獲取網頁內容 (嘗試 1/3, force_new_driver=False) 2025-10-13 21:53:31 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:53:31 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:53:31 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/ 的第 1/3 次請求 2025-10-13 21:53:31 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:53:31 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:53:31 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:53:31 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:53:31 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:53:31 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:53:31 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:53:31 - 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-13 21:53:31 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:53:31 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:53:32 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:53:32 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:53:32 - 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 0x5c09693da4e3 <unknown> #1 0x5c0969109c76 <unknown> #2 0x5c0969132d78 <unknown> #3 0x5c096912f029 <unknown> #4 0x5c096916dccc <unknown> #5 0x5c096916d47f <unknown> #6 0x5c0969164de3 <unknown> #7 0x5c096913a2dd <unknown> #8 0x5c096913b34e <unknown> #9 0x5c096939a3e4 <unknown> #10 0x5c096939e3d7 <unknown> #11 0x5c09693a8b20 <unknown> #12 0x5c096939f023 <unknown> #13 0x5c096936d1aa <unknown> #14 0x5c09693c36b8 <unknown> #15 0x5c09693c3847 <unknown> #16 0x5c09693d3243 <unknown> #17 0x738442294ac3 <unknown> 2025-10-13 21:53:32 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:53:32 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:53:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 0/1 2025-10-13 21:53:32 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:53:32 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/ 2025-10-13 21:53:36 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/ 2025-10-13 21:53:36 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:53:36 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:53:36 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:53:36 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/ 2025-10-13 21:53:38 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: jquery 2025-10-13 21:53:38 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:53:38 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:53:38 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:53:38 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:53:42 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 0/1 2025-10-13 21:53:42 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 369 2025-10-13 21:53:44 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 369,內容可能已加載完成 2025-10-13 21:53:44 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:53:52 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 0/1 2025-10-13 21:54:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 0/1 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/ (實際 URL: https://www.garmin.com.tw/) 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:54:03 - INFO - database - [database.py:505] - update_url_status - URL ID 72 状态已更新为 processing 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 200376 字節 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 320 字節 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1644 字節 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 1256 字節 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 2035 字節,約 284 個詞,123 行 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 Play/Pause Venu 4 GPS 智慧腕錶 了解更多 Instinct Crossover AMOLED 實體指針GPS智慧錶 了解更多 Instinct 3 Supernova 限量販售 本我系列 GPS 智慧腕錶 了解更多 Edge 550 | 850 GPS自行車錶 了解更多 Descent X30 GPS潛水電腦 了解更多 上一頁 下一頁 新品資訊 智慧手錶怎麼選? 了解更多 >> Descent X30 GPS潛水電腦 堅固耐用的潛水電腦,配備水面 GPS、金屬防滲按鈕,以及鮮豔色彩的 2.4 吋顯示螢幕。 Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Instinct Crossover AMOLED - 軍事戰術版 實體指針GPS智慧錶 堅固耐用的混合式 GPS 戰術智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 Instinct Crossover AMOLED 實體指針GPS智慧錶 堅固耐用的混合式 GPS 智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 Instinct 3 – AMOLED 本我系列 GPS 智慧腕錶 一款堅固耐用的智慧戶外運動手錶,搭載炫彩高清螢幕,支援全天候健康監測、智慧通知以及LED手電筒,並提供超長續航。 Instinct 3 – Solar 本我系列 GPS 太陽能智慧腕錶 一款堅固耐用的智慧戶外運動手錶,搭載太陽能充電鏡面,支援全天候健康監測、智慧通知以及LED手電筒,並提供超長續航。 Edge 850 GPS自行車錶 搭載鮮明彩色觸控螢幕、進階訓練功能及內建式喇叭的小巧型 GPS 自行車錶。 Edge 550 GPS自行車錶 搭載鮮明彩色螢幕、按鍵控制及進階訓練功能的小巧型 GPS 自行車錶。 上一頁 下一頁 活動與資訊 2025 百貨周年慶攻略 配合百貨周年慶活動,為您獻上Garmin專櫃獨家優惠。於活動期間購買指定錶款,最多享6折優惠。限時限量,錯過機會不再! 【現正報名中】 Garmin Tri 營戰三鐵訓練營 2025 - 2026 Garmin Tri 營戰三鐵訓練營將成為 2026 Challenge Taiwan 的合作夥伴,入選的學員個人將可以獲得合作夥伴提供價值超過二十萬的裝備,並與鐵人工廠合作推出更多元且豐富的課程,提供長達 20 週的科學化訓練週期。勇敢挑戰極限!Tri Your Best! 2025 第三季軟體更新 你的設備應該與你一起成長。為了帶給你最新技術,我們為多款智慧手錶發布軟體更新,一同了解更多全新功能。 最新消息 新聞 科技引領永續|Garmin 升級路殺警示功能 推動台灣生態共存新典範 了解更多 資訊 [官網獨家] Garmin Birthday 專屬優惠 了解更多 新聞 最懂你的健康教練上線!Garmin Venu 4量身打造專屬你的全天候健康生活 了解更多 訂閱電子報 Cookie Preferences 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:54:03 - INFO - ContentAnalyzer - [analyzer.py:310] - check_specific_issues - 開始檢查網頁特定問題: URL=https://www.garmin.com.tw/, HTML 內容大小=200376 字節 2025-10-13 21:54:03 - INFO - ContentAnalyzer - [analyzer.py:676] - check_specific_issues - 網頁特定問題檢查完成: URL=https://www.garmin.com.tw/, 發現問題數=15, 嚴重問題數=9, 耗時=0.034秒 2025-10-13 21:54:03 - INFO - ContentAnalyzer - [analyzer.py:681] - check_specific_issues - 問題類型摘要: suspicious_external_script(12), suspicious_inline_script(2), iframe(1) 2025-10-13 21:54:03 - INFO - ContentAnalyzer - [analyzer.py:685] - check_specific_issues - 嚴重程度摘要: info(6), warning(9) 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2522] - find_internal_links - 從HTML靜態內容中提取了 101 個內部鏈接 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2683] - find_internal_links - 鏈接數量 (101) 超過限制 (20),進行截斷 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:2686] - find_internal_links - 總共找到 20 個有效內部鏈接 2025-10-13 21:54:03 - INFO - main - [url_processor.py:153] - process_url - 找到 20 個內部鏈接,最大深度2層 2025-10-13 21:54:03 - INFO - main - [url_processor.py:179] - process_url - 更新 UI 審核進度(URL ID=72):總計 21 個網址,已完成 1 個(主頁面) 2025-10-13 21:54:03 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw 2025-10-13 21:54:03 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw 的第 1/3 次請求 2025-10-13 21:54:03 - 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 0x7013d6e70e10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b269ff23faf2f5bc7b5ac311553b7a54 2025-10-13 21:54:03 - 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 0x7013d6e71910>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b269ff23faf2f5bc7b5ac311553b7a54 2025-10-13 21:54:03 - 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 0x7013d6e72010>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b269ff23faf2f5bc7b5ac311553b7a54 2025-10-13 21:54:03 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:54:03 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:54:03 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:54:03 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:54:03 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:54:03 - 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-13 21:54:03 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:54:03 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:54:04 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:54:04 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:54:04 - 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 0x5f5de7b244e3 <unknown> #1 0x5f5de7853c76 <unknown> #2 0x5f5de787cd78 <unknown> #3 0x5f5de7879029 <unknown> #4 0x5f5de78b7ccc <unknown> #5 0x5f5de78b747f <unknown> #6 0x5f5de78aede3 <unknown> #7 0x5f5de78842dd <unknown> #8 0x5f5de788534e <unknown> #9 0x5f5de7ae43e4 <unknown> #10 0x5f5de7ae83d7 <unknown> #11 0x5f5de7af2b20 <unknown> #12 0x5f5de7ae9023 <unknown> #13 0x5f5de7ab71aa <unknown> #14 0x5f5de7b0d6b8 <unknown> #15 0x5f5de7b0d847 <unknown> #16 0x5f5de7b1d243 <unknown> #17 0x77d44a694ac3 <unknown> 2025-10-13 21:54:04 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:54:04 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:54:04 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:54:04 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:54:08 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:54:08 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:54:08 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:54:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:54:08 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:54:08 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw 2025-10-13 21:54:10 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: jquery 2025-10-13 21:54:10 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:54:10 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:54:10 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:54:10 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:54:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 1/21 2025-10-13 21:54:14 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 369 2025-10-13 21:54:16 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 369,內容可能已加載完成 2025-10-13 21:54:16 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:54:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 1/21 2025-10-13 21:54:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 1/21 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw (實際 URL: https://www.garmin.com.tw/) 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 200319 字節 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 320 字節 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1644 字節 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 1256 字節 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 2035 字節,約 284 個詞,123 行 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 Play/Pause Venu 4 GPS 智慧腕錶 了解更多 Instinct Crossover AMOLED 實體指針GPS智慧錶 了解更多 Instinct 3 Supernova 限量販售 本我系列 GPS 智慧腕錶 了解更多 Edge 550 | 850 GPS自行車錶 了解更多 Descent X30 GPS潛水電腦 了解更多 上一頁 下一頁 新品資訊 智慧手錶怎麼選? 了解更多 >> Descent X30 GPS潛水電腦 堅固耐用的潛水電腦,配備水面 GPS、金屬防滲按鈕,以及鮮豔色彩的 2.4 吋顯示螢幕。 Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Instinct Crossover AMOLED - 軍事戰術版 實體指針GPS智慧錶 堅固耐用的混合式 GPS 戰術智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 Instinct Crossover AMOLED 實體指針GPS智慧錶 堅固耐用的混合式 GPS 智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 Instinct 3 – AMOLED 本我系列 GPS 智慧腕錶 一款堅固耐用的智慧戶外運動手錶,搭載炫彩高清螢幕,支援全天候健康監測、智慧通知以及LED手電筒,並提供超長續航。 Instinct 3 – Solar 本我系列 GPS 太陽能智慧腕錶 一款堅固耐用的智慧戶外運動手錶,搭載太陽能充電鏡面,支援全天候健康監測、智慧通知以及LED手電筒,並提供超長續航。 Edge 850 GPS自行車錶 搭載鮮明彩色觸控螢幕、進階訓練功能及內建式喇叭的小巧型 GPS 自行車錶。 Edge 550 GPS自行車錶 搭載鮮明彩色螢幕、按鍵控制及進階訓練功能的小巧型 GPS 自行車錶。 上一頁 下一頁 活動與資訊 2025 百貨周年慶攻略 配合百貨周年慶活動,為您獻上Garmin專櫃獨家優惠。於活動期間購買指定錶款,最多享6折優惠。限時限量,錯過機會不再! 【現正報名中】 Garmin Tri 營戰三鐵訓練營 2025 - 2026 Garmin Tri 營戰三鐵訓練營將成為 2026 Challenge Taiwan 的合作夥伴,入選的學員個人將可以獲得合作夥伴提供價值超過二十萬的裝備,並與鐵人工廠合作推出更多元且豐富的課程,提供長達 20 週的科學化訓練週期。勇敢挑戰極限!Tri Your Best! 2025 第三季軟體更新 你的設備應該與你一起成長。為了帶給你最新技術,我們為多款智慧手錶發布軟體更新,一同了解更多全新功能。 最新消息 新聞 科技引領永續|Garmin 升級路殺警示功能 推動台灣生態共存新典範 了解更多 資訊 [官網獨家] Garmin Birthday 專屬優惠 了解更多 新聞 最懂你的健康教練上線!Garmin Venu 4量身打造專屬你的全天候健康生活 了解更多 訂閱電子報 Cookie Preferences 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:54:35 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 2/21 個網址 2025-10-13 21:54:35 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/wearables/?cat=trail-running 2025-10-13 21:54:35 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/wearables/?cat=trail-running, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/wearables/?cat=trail-running 的第 1/3 次請求 2025-10-13 21:54:35 - 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 0x7013d6c20450>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/d1be6eb9155a0ac5832970bd519e137c 2025-10-13 21:54:35 - 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 0x7013d7380690>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/d1be6eb9155a0ac5832970bd519e137c 2025-10-13 21:54:35 - 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 0x7013d73811d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/d1be6eb9155a0ac5832970bd519e137c 2025-10-13 21:54:35 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:54:35 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:54:35 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:54:35 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:54:35 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:54:35 - 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-13 21:54:35 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:54:35 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:54:36 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:54:36 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:54:36 - 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 0x5ab3853854e3 <unknown> #1 0x5ab3850b4c76 <unknown> #2 0x5ab3850ddd78 <unknown> #3 0x5ab3850da029 <unknown> #4 0x5ab385118ccc <unknown> #5 0x5ab38511847f <unknown> #6 0x5ab38510fde3 <unknown> #7 0x5ab3850e52dd <unknown> #8 0x5ab3850e634e <unknown> #9 0x5ab3853453e4 <unknown> #10 0x5ab3853493d7 <unknown> #11 0x5ab385353b20 <unknown> #12 0x5ab38534a023 <unknown> #13 0x5ab3853181aa <unknown> #14 0x5ab38536e6b8 <unknown> #15 0x5ab38536e847 <unknown> #16 0x5ab38537e243 <unknown> #17 0x793ccf094ac3 <unknown> 2025-10-13 21:54:36 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:54:36 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:54:36 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:54:36 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/wearables/?cat=trail-running 2025-10-13 21:54:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:54:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.2MB, CPU 0.0% 2025-10-13 21:54:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 150.5MB, CPU 0.0% 2025-10-13 21:54:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 21:54:39 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=trail-running 2025-10-13 21:54:39 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:54:39 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:54:39 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:54:39 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=trail-running 2025-10-13 21:54:41 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 21:54:41 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 21:54:41 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 21:54:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 2/21 2025-10-13 21:54:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 2/21 2025-10-13 21:54:59 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 .container,內容長度: 92 2025-10-13 21:55:01 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 588 2025-10-13 21:55:03 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 588,內容可能已加載完成 2025-10-13 21:55:03 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:55:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 2/21 2025-10-13 21:55:06 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 21:55:06 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:55:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 21:55:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 2/21 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/wearables/?cat=trail-running (實際 URL: https://www.garmin.com.tw/products/wearables/?cat=trail-running) 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 261666 字節 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 635 字節 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 4465 字節 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 4293 字節 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 4856 字節,約 631 個詞,330 行 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 越野跑手錶 越野跑手錶 越野跑不只是在山林中奔跑,更是體能分配與導航的挑戰。 Garmin 越野跑錶提供深入數據洞察、地圖導航、爬升高度,讓你在山林中更安心、更有信心挑戰自我。 越野跑手錶快速推薦 訓練完備程度 查看根據你的睡眠品質、恢復狀態、訓練負荷等資訊顯示的完備度分數,方便你判斷當天適合挑戰自己多一點,還是輕鬆點就好。 即時體力量表 藉由即時體力,了解當下體能,並透過體力恢復上限,適時調整配速與體力。 ClimbPro 爬坡規劃器 你可以查看目前和即將爬升的即時資訊,包含坡度、距離,以及完整路線的海拔剖面圖。 路線地圖導航 內建等高線地圖、多頻 GNSS 導航,能在沒有手機訊號的地區根據預設路線提供精準導航 Up Ahead 前方路線點 幫助你更了解路線中即將出現的重要路線點位。 叉路提示 在導航活動期間遵循清晰的地圖和方向,輕鬆保持在軌道上。 爬坡分數 測量你的跑步爬坡能力,並依據最大攝氧量與訓練記錄,評估一段時間內的進步幅度。 耐力分數 這個動態數據會根據你的最大攝氧量、短期/長期的訓練負荷和其他因素來衡量體能進步狀況,而非只是評估最大攝氧量。 高海拔適應與熱適應 根據你的健康指標,顯示你對目前海拔或高溫的適應狀況。 實用越野跑小工具 GARMIN SHARE 一起探索更多!即時分享你的活動路線及位置。 LED FLASHLIGHT 你的緊急照明!手機和頭燈的替代品。 PULSE OX 即時監測你的血氧濃度, 迅速評估你當下的身體狀況。 ABC SENSOR 提供關鍵的環境資料並支援路線搜尋及天氣預報,藉此提升戶外活動愛好者的安全及導航。 越野跑手錶快速推薦 fēnix 8 Pro – 51 mm, MicroLED 全方位戶外進階GPS智慧腕錶 NT$ 62,990 了解更多 Forerunner 970 GPS 全方位鐵人運動錶 NT$ 23,990 了解更多 Forerunner 570 - 42 mm GPS 智慧心率進階跑錶 NT$ 17,990 了解更多 Instinct 3 – 50 mm, AMOLED 本我系列 GPS 智慧腕錶 NT$ 16,990 了解更多 Amoled螢幕 Amoled螢幕 Amoled螢幕 Amoled螢幕 藍寶石鏡片 藍寶石鏡片 - - Garmin Share Garmin Share Garmin Share Garmin Share Garmin Pay Garmin Pay Garmin Pay Garmin Pay 多頻段 GNSS 多頻段 GNSS 多頻段 GNSS 多頻段 GNSS ABC 感測器 ABC 感測器 ABC 感測器 ABC 感測器 睡眠與健康追蹤 睡眠與健康追蹤 睡眠與健康追蹤 睡眠與健康追蹤 內建地圖 內建地圖 內建地圖 內建地圖 航線/GPX導航 航線/GPX導航 航線/GPX導航 航線/GPX導航 幫助你掌握即將到來的 關鍵路線點。 幫助你掌握即將到來的 關鍵路線點。 幫助你掌握即將到來的 關鍵路線點。 - 查看目前與即將爬升的 坡度、距離和海拔變化圖 查看目前與即將爬升的 坡度、距離和海拔變化圖 查看目前與即將爬升的 坡度、距離和海拔變化圖 - 手電筒 手電筒 - 手電筒 語音指令 語音指令 語音指令 - 潛水模式 - - - MicroLED - 51mm 智慧手錶模式10天(恆亮模式4天) GPS模式44小時(恆亮模式18小時) 智慧手錶模式15天 GPS模式26小時 智慧手錶模式10天 GPS模式18小時 Amoled - 50mm 智慧手錶模式24天 GPS模式40小時 請選擇分類 + 所有智慧穿戴手錶 66 + 戶外運動手錶 28 + 跑步手錶 7 + 越野跑手錶 13 + 室內健身手錶 12 + 複合式 & 三鐵錶 33 + 潛水錶 6 + 游泳錶 42 + 高爾夫手錶 11 + 女性手錶 28 + 時尚手錶 17 + 健康手錶 18 + 支援心電圖App手錶 14 + 行動支付 & 悠遊卡手錶 51 + 行動支付 & 一卡通手錶 2 + 音樂手錶 30 + 航海錶 3 + 航空錶 1 + MARQ 工藝腕錶 9 NEW Instinct Crossover AMOLED - 軍事戰術版 實體指針GPS智慧錶 堅固耐用的混合式 GPS 戰術智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 堅固耐用的混合式 GPS 戰術智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 NT$ 21,990 NEW Instinct Crossover AMOLED 實體指針GPS智慧錶 堅固耐用的混合式 GPS 智慧腕錶,搭載實體指針與亮眼 AMOLED 螢幕。 Instinct Crossover AMOLED 是一款結合實體指針的智慧腕錶,具備AMOLED炫彩螢幕、LED 手電筒、全天候健康監測,以及最長可達 14 天的電池續航。 NT$ 18,990 NEW Instinct 3 – AMOLED 本我系列 GPS 智慧腕錶 一款堅固耐用的智慧戶外運動手錶,搭載炫彩高清螢幕,支援全天候健康監測、智慧通知以及LED手電筒,並提供超長續航。 Instinct 3 AMOLED 是一款強悍耐用的軍規GPS運動腕錶,具備 1.3 吋明亮清晰的 AMOLED 螢幕,智慧手錶模式下電池效能可達 24 天。 NT$ 16,990 NEW Instinct 3 – Solar 本我系列 GPS 太陽能智慧腕錶 一款堅固耐用的智慧戶外運動手錶,搭載太陽能充電鏡面,支援全天候健康監測、智慧通知以及LED手電筒,並提供超長續航。 Instinct 3 Solar 是一款強悍耐用的軍規GPS太陽能運動智慧腕錶,使用太陽能充電時,在智慧手錶模式下享有無限電池續航力。 NT$ 14,990 NEW fēnix 8 Pro MicroLED 全方位戶外進階GPS智慧腕錶 極致明亮 MicroLED 螢幕,內建行動網路及衛星通訊的 inReach 通訊科技 fēnix 8 Pro - MicroLED 是一款全方位戶外進階智慧手錶,極致明亮的MicroLED螢幕,為全球最亮的智慧手錶,搭載衛星通訊及行動網路連線。 NT$ 62,990 從訓練到裝備,越野跑全指南 跑進山林前,你需要這些知識 >> NEW fēnix 8 Pro AMOLED 全方位戶外進階GPS智慧腕錶 明亮清晰的 AMOLED 螢幕,內建行動網路及衛星通訊的 inReach 通訊科技 fēnix 8 Pro AMOLED 是一款全方位戶外進階智慧手錶,內建行動網路及衛星通訊的 inReach 通訊科技,能在有行動網路連線時使用語音通話及 LiveTrack 即時追蹤分享位置。 NT$ 40,990 Forerunner 970 GPS 全方位鐵人運動錶 搭載 AMOLED 全彩炫色觸控螢幕,訓練完備程度陪你挺進各種大小賽事 Forerunner 970是一款旗艦級GPS 全方位鐵人運動錶,具備明亮螢幕、內建喇叭與麥克風、內建地圖、訓練功能,電池續航力最長可達 15 天。 NT$ 23,990 Forerunner 570 系列 GPS 智慧心率進階跑錶 小尺寸進階 GPS 跑步與鐵人三項智慧手錶,搭載 AMOLED 螢幕及訓練與恢復功能。 Forerunner 570是小尺寸的GPS智慧心率進階跑錶,配備 AMOLED 螢幕、內建喇叭與麥克風、訓練功能,電池續航力最長可達 18 小時。 NT$ 17,990 Instinct 3 – 50 mm, AMOLED, 戰術版 本我系列 GPS 智慧腕錶-戰術版 這款以軍規標準打造的堅固 GPS 智慧手錶,內建專業級戰術功能及全方位戶外工具,並搭載 AMOLED 螢幕跟LED 手電筒,助你掌控全局,無懼前行。 戴上 Instinct 3 - 戰術版,大膽出擊。 這款以軍規標準打造的堅固 GPS 智慧手錶,內建專業級戰術功能及全方位戶外工具,並搭載 AMOLED 螢幕跟LED 手電筒,助你掌控全局,無懼前行。 NT$ 19,990 fēnix 8 - Solar系列 全方位戶外進階GPS智慧腕錶系列 你是個想要突破自我極限的專業運動員/冒險玩家,想擁有一款提供聚焦式肌力訓練、潛水功能、地形圖等功能的高效能 GPS 智慧手錶。fēnix 8 正符合你的需要。 fēnix 8是一款高級多功能智慧手錶,配有太陽能充電鏡片,可延長電池效能,內寘揚聲器和麥克風&適合更粗手腕的造型。 NT$ 38,990 fēnix 8 - AMOLED系列 全方位戶外進階GPS智慧腕錶系列 你是個想要突破自我極限的專業運動員/冒險玩家,想擁有一款提供聚焦式肌力訓練、潛水功能、地形圖等功能的高效能 GPS 智慧手錶。fēnix 8 正符合你的需要。 NT$ 38,990 Forerunner 965 系列 GPS 全方位鐵人運動錶 搭載 AMOLED 全彩炫色觸控螢幕,訓練完備程度陪你挺進各種大小賽事 你渴望勝利的榮光。利用 Forerunner 965 搭載的明亮 AMOLED 螢幕和頂級跑步/三鐵功能,精彩訓練,你將能踏上頒獎台。 NT$ 19,990 Forerunner 265 系列 GPS智慧心率進階跑錶 搭載 AMOLED 全彩炫色觸控螢幕,個人化的每日訓練建議可以幫助你挑戰極限 你是個想要聰明訓練的跑者。有了 Forerunner 265 配備的明亮 AMOLED 螢幕、訓練指標及恢復狀況分析,你將能夠跑出亮眼表現。 NT$ 14,990 ClimbPro 爬坡規劃,專為越野跑而生 提前掌握每段爬升,讓山徑挑戰更有策略 >> 最多比較 4 項產品 功能比較 清除全部 此頁面是否有幫助您了解,為什麼 Garmin 能提升您的越野跑表現? 看完此越野跑專區後,您會考慮購買 Garmin 手錶嗎? 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:55:15 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 3/21 個網址 2025-10-13 21:55:15 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/careers/ 2025-10-13 21:55:15 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/careers/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/careers/ 的第 1/3 次請求 2025-10-13 21:55:15 - 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 0x7013d6febc50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/0616f6e6299233a701af6be378912ea9 2025-10-13 21:55:15 - 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 0x7013d6fe0090>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/0616f6e6299233a701af6be378912ea9 2025-10-13 21:55:15 - 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 0x7013d6fe1550>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/0616f6e6299233a701af6be378912ea9 2025-10-13 21:55:15 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:55:15 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:55:15 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:55:15 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:55:15 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:55:15 - 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-13 21:55:16 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:55:16 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:55:16 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:55:16 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:55:16 - 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 0x5610e05e24e3 <unknown> #1 0x5610e0311c76 <unknown> #2 0x5610e033ad78 <unknown> #3 0x5610e0337029 <unknown> #4 0x5610e0375ccc <unknown> #5 0x5610e037547f <unknown> #6 0x5610e036cde3 <unknown> #7 0x5610e03422dd <unknown> #8 0x5610e034334e <unknown> #9 0x5610e05a23e4 <unknown> #10 0x5610e05a63d7 <unknown> #11 0x5610e05b0b20 <unknown> #12 0x5610e05a7023 <unknown> #13 0x5610e05751aa <unknown> #14 0x5610e05cb6b8 <unknown> #15 0x5610e05cb847 <unknown> #16 0x5610e05db243 <unknown> #17 0x775547094ac3 <unknown> 2025-10-13 21:55:16 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:55:16 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/careers/ 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/careers/ 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:55:17 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/careers/ 2025-10-13 21:55:20 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: jquery 2025-10-13 21:55:20 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:55:20 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:55:20 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:55:20 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:55:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 3/21 2025-10-13 21:55:24 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 347 2025-10-13 21:55:26 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 347,內容可能已加載完成 2025-10-13 21:55:26 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:55:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 3/21 2025-10-13 21:55:44 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 3/21 2025-10-13 21:55:44 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/careers/ (實際 URL: https://www.garmin.com.tw/careers/) 2025-10-13 21:55:44 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:55:44 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:55:44 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 190212 字節 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 931 字節 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 592 字節 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1322 字節,約 195 個詞,96 行 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 加入 Garmin 加入 Garmin 將你 / 妳的熱情結合至工作中 加入我們 投身熱情於工作 我們在汽車、航空、航海、戶外休閒以及運動等五大領域深耕,並提供人才多樣化的舞台。 熱情發揮無疆界 Garmin 致力成為 GPS 的領航者,以「垂直整合」為產品開發的營運策略,兼納多元化人才的加入。 走鋼索的勇氣 Garmin 秉持以「求難、不求易」的經營哲學,以此理念開創導航定位世界第一,我們期待各界技術專業人才一起領航世界! 在 Garmin 定位你 / 妳的熱情 研發與技術工程 經營管理 資訊科技 業務與行銷 生產與製造工程 活動資訊 2025 Garmin獎學金計畫即日起開放申請至10/15截止! 歡迎「電子、軟體、醫學工程、人工智慧」領域碩、博士生報名,10萬元獎金等你帶回家! 工作據點 新北市汐止區 新北市汐止區樟樹二路68號 職缺搜尋 新北市汐止遠雄UTown 新北市汐止區新台五路一段97號37樓 職缺搜尋 新北市新店寶高園區 新北市新店區寶高路28號9樓 職缺搜尋 桃園市龜山區 桃園市龜山區華亞二路270號 職缺搜尋 桃園市中壢區 桃園市中壢區北園路24號 職缺搜尋 台南市新市區 台南市新市區堤塘港路3號 職缺搜尋 FOLLOW @GARMINCAREERS 訂閱電子報 Cookie Preferences 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:55:45 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 4/21 個網址 2025-10-13 21:55:45 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/minisite/approach/ 2025-10-13 21:55:45 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/minisite/approach/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/minisite/approach/ 的第 1/3 次請求 2025-10-13 21:55: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 0x7013d6dd3c50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b1c45620b90c935ea259e8efbf3ac304 2025-10-13 21:55: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 0x7013d6ed8ad0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b1c45620b90c935ea259e8efbf3ac304 2025-10-13 21:55: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 0x7013d6ed9190>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b1c45620b90c935ea259e8efbf3ac304 2025-10-13 21:55:45 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:55:45 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:55:45 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:55:45 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:55:45 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:55: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-13 21:55:45 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:55:45 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:55:45 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:55: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-13 21:55: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 0x6019aa7de4e3 <unknown> #1 0x6019aa50dc76 <unknown> #2 0x6019aa536d78 <unknown> #3 0x6019aa533029 <unknown> #4 0x6019aa571ccc <unknown> #5 0x6019aa57147f <unknown> #6 0x6019aa568de3 <unknown> #7 0x6019aa53e2dd <unknown> #8 0x6019aa53f34e <unknown> #9 0x6019aa79e3e4 <unknown> #10 0x6019aa7a23d7 <unknown> #11 0x6019aa7acb20 <unknown> #12 0x6019aa7a3023 <unknown> #13 0x6019aa7711aa <unknown> #14 0x6019aa7c76b8 <unknown> #15 0x6019aa7c7847 <unknown> #16 0x6019aa7d7243 <unknown> #17 0x773e31c94ac3 <unknown> 2025-10-13 21:55:46 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:55:46 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:55:46 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:55:46 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/minisite/approach/ 2025-10-13 21:55:50 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/minisite/approach/ 2025-10-13 21:55:50 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:55:50 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:55:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 4/21 2025-10-13 21:56:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 4/21 2025-10-13 21:56:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:56:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.7MB, CPU 0.0% 2025-10-13 21:56:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 151.6MB, CPU 0.0% 2025-10-13 21:56:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:56:08 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: .container 2025-10-13 21:56:08 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/minisite/approach/ 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:56:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:56:10 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 21:56:10 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 21:56:10 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 21:56:14 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 4/21 2025-10-13 21:56:24 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 4/21 2025-10-13 21:56:29 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 .container,內容長度: 82 2025-10-13 21:56:30 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 451 2025-10-13 21:56:32 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 451,內容可能已加載完成 2025-10-13 21:56:32 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:56:34 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 4/21 2025-10-13 21:56:44 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 4/21 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/minisite/approach/ (實際 URL: https://www.garmin.com.tw/minisite/approach/) 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 216322 字節 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 1018 字節 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 3343 字節 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 2596 字節 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 674 字節 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 4029 字節,約 506 個詞,221 行 2025-10-13 21:56:50 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 GARMIN GOLF ECOSYSTEM 球場上 精準 GPS 定位搭配最詳盡的球道圖資,初次上場也能對球道障礙瞭若指掌,讓你每次揮桿都充滿無比信心。 練習場 以先進雷達技術,剖析每一次揮桿細節,調整動作更加有憑有據。無論是室內或室外環境,暢打真實球道虛擬球局競賽,猶如親臨現場。 Golf App 整合歷史擊球資料,免費分析擊球距離、落點分布與精準度。無須 Garmin Approach 裝置也能參與數據統計,參與每週排行榜和競賽。 球場上 練習場 Golf App 球場上, 它就是最佳後援 無論您是首次下場或經驗豐富的球友,Garmin Golf 裝置提供詳盡球道資訊、清晰標示障礙物及果嶺距離; 甚至能在擊球前提供個人化球桿建議。 APPROACH S40 APPROACH S70 APPROACH G80 APPROACH Z82 APPROACH Z30 APPROACH CT1 new 從沒打過的球場也能瞭若指掌 果嶺地形資料 * 顯示擊球果嶺地形起伏資料,妥善規劃您的攻果嶺揮擊與推桿策略(需訂閱 Garmin Golf app 加值方案)。 觀看影片 支援全球超過 43,000 幅 球道圖資 全彩球道圖資,障礙區一覽無遺。 檢視球場圖資 障礙區視圖 快速瀏覽球道每處障礙區距離,擊球更有信心。 Approach S70 PLAYSLIKE 坡度距離建議 依球道上、下坡度變化,提供補償後的水平建議距離。 Approach S70 果嶺指向輔助 遭障礙物遮蔽而無法直視旗桿時,為你指向正確擊球方位。 Approach S70 專屬私人桿弟 球道攻略提示 根據風速、風向及歷史揮桿距離、方向等數據,提供最適合的球桿建議,並在地圖上標示瞄準方向。 風向風速資訊 在錶面顯示所在地的風向風速資訊 ( 需配對 Garmin Golf app )。 Approach S70 前所未有的精準測距 GPS 雷射測距儀 結合全彩球道圖資與雷射測距功能,提供正負 25 公分的超精準測距。 不再遺失你的測距儀 尋找 GARMIN 裝置 若不小心將測距儀遺落在球場上,只需透過 Garmin Golf app 即能查詢機台最後使用位置。 Approach Z30 了解你的球桿 自動追蹤球桿揮桿數據 與相容 Garmin 高爾夫腕錶配對,自動追蹤每次擊球資訊,包括位置、距離和球桿類型。 Approach CT10 標記您的球桿 在腕上接收數據 每次擊球前,將感測器輕觸相容的 Garmin 高爾夫手錶,就能檢視準確度數據。 Approach CT1 了解你的球桿 自動追蹤球桿揮桿數據 與相容 Garmin 高爾夫腕錶配對,自動追蹤每次擊球資訊,包括位置、距離和球桿類型。 Approach CT10 標記您的球桿 在腕上接收數據 每次擊球前,將感測器輕觸相容的 Garmin 高爾夫手錶,就能檢視準確度數據。 Approach CT1 數據,讓每次揮桿都有意義 Garmin 雷達高爾夫訓練儀能在擊球瞬間,偵測球桿與高爾夫球飛行數據,並提供擬真的擊球模擬模式。 科學化數據,讓每次練習更有效率。 APPROACH G80 APPROACH R10 APPROACH R50 new 跟著數據練, 才會變更強! 多種擊球指標, 還原真實揮桿樣貌 透過偵測桿頭速度、球速、球旋轉量、出球角度、出球方向、擊球效率等數據,提高揮桿穩定度,練得更有效率。 Approach R50 輕便易攜帶, 練功最佳神器 使用環境不受場地限制,無論室內或練習場都能使用。電池效能長達 10 小時,讓你更投入地專注訓練。 Approach R10 節奏訓練 想擁有穩定上下桿節奏?節奏訓練模式可偵測上桿及下桿節奏,並提供即時數據回饋。 Approach G80 模擬模式 暢打全球知名球場 HOME TEE HERO 虛擬球局 * 內建全球超過 43,000 個真實球道圖資,隨時與朋友來場 Home Tee Hero 虛擬球局。也可作為下場前熱身練習,擬定最佳擊球策略。 Approach R10 線上過招 每週錦標賽 * 與全球各地高手再當週的 PGA 錦標賽球場線上廝殺,衝上排名,將你的名字留在每週英雄榜上。 Approach R10 * HOME TEE HERO 虛擬球局與每週錦標賽需訂閱 Garmin Golf app 會員加值方案。 最完整的高爾夫數據資料庫 上傳每次擊球計分卡,累積您的個人化高球數據資料庫,深入了解每一支球桿的平均距離、飛行落點分布。 了解自己,是提升成績的最佳捷徑。 Garmin Golf App 訂閱 Garmin Golf, 取得更多超值內容 免付費功能 從相容的 Garmin 裝置上傳計分卡 從相容的 Garmin 裝置檢視擊球記錄 檢視高球表現數據 參與每週排行榜 建立錦標賽 從相容的 Garmin 裝置儲存訓練數據 30 天免費試用 Garmin Golf 加值方案 加值訂閱方案 月費方案:新台幣 310 元 年費方案:新台幣 3,090 元 可使用所有免付費功能 利用果嶺地形資料妥善規劃您的攻果嶺揮擊與推桿策略 暢玩超過 43,000 幅球道的 Home Tee Hero 虛擬球局 (Approach R10 專屬) 將您的揮桿影片上傳雲端儲存空間 (Approach R10 專屬) 了解更多 果嶺起伏 分吋皆知 果嶺地形資料 * 顯示相容球場的果嶺地形資料,將坡度資訊顯示於 Garmin Golf app 及相容裝置,妥善規劃您的攻果嶺揮擊與推桿策略。 果嶺地形資料 HOME TEE HERO 虛擬球局 ** 內建全球超過 43,000 個真實球道圖資,隨時與朋友來場 Home Tee Hero 虛擬球局。也可作為下場前熱身練習,擬定最佳擊球策略。 觀看影片 線上過招 每週錦標賽 ** 與全球各地高手再當週的 PGA 錦標賽球場線上廝殺,衝上排名,將你的名字留在每週英雄榜上。 揮桿影片上傳雲端空間 ** 透過 R10 與智慧型手機錄製的揮桿影片,自動上傳雲端空間,釋放手機儲存空間。 深度剖析 歷史擊球狀況 球場統計資料 檢視每個球場的平均桿數,並瀏覽開球精確度、最遠開球距離,標準桿上果嶺率及每洞推桿數等數據。 表現統計資料 分析開球、上果嶺擊球、短切及推桿的精準度,並查看自身與 Garmin Golf 所有使用者之間的排名。 擊球地圖 檢視球場每桿擊球記錄,讓你回顧球局中每球落點與方向。 與好友來場錦標賽 建立專屬的錦標賽並邀請好友來較勁、上傳計分卡加入每週排行榜,也能互相即時聊天並相互比較資料、排行及數據。 * 需訂閱 Garmin Golf app 加值方案。 ** 需具備有效的 Garmin Golf app 加值訂閱方案並搭配 Approach R10 雷達高爾夫訓練儀(另售)。 Garmin Golf Club 高爾夫、數據分析、專業教練,是 Garmin Golf Club (GGC) 的核心組成部分。通過Garmin科學化的數據分析和專業教練的完整 13 個周期訓練計劃,幫助學員提升訓練效率和高球表現。 立即加入 訂閱電子報 Cookie Preferences 額外的結構化內容: • 從相容的 Garmin 裝置上傳計分卡 • 從相容的 Garmin 裝置檢視擊球記錄 • 檢視高球表現數據 • 參與每週排行榜 • 建立錦標賽 • 從相容的 Garmin 裝置儲存訓練數據 • 30 天免費試用 Garmin Golf 加值方案 • 月費方案:新台幣 310 元 • 年費方案:新台幣 3,090 元 • 可使用所有免付費功能 • 利用果嶺地形資料妥善規劃您的攻果嶺揮擊與推桿策略 • 暢玩超過 43,000 幅球道的 Home Tee Hero 虛擬球局 (Approach R10 專屬) • 將您的揮桿影片上傳雲端儲存空間 (Approach R10 專屬) • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:56:51 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 5/21 個網址 2025-10-13 21:56:51 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/company/about/ 2025-10-13 21:56:51 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/company/about/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/company/about/ 的第 1/3 次請求 2025-10-13 21:56:51 - 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 0x7013d6ed0410>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/015e6858d3a7b752ec29321b38a37b87 2025-10-13 21:56:51 - 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 0x7013d6f02110>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/015e6858d3a7b752ec29321b38a37b87 2025-10-13 21:56:51 - 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 0x7013d6f03590>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/015e6858d3a7b752ec29321b38a37b87 2025-10-13 21:56:51 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:56:51 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:56:51 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:56:51 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:56:51 - 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-13 21:56:51 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:56:51 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:56:51 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:56:51 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:56:51 - 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 0x5911013494e3 <unknown> #1 0x591101078c76 <unknown> #2 0x5911010a1d78 <unknown> #3 0x59110109e029 <unknown> #4 0x5911010dcccc <unknown> #5 0x5911010dc47f <unknown> #6 0x5911010d3de3 <unknown> #7 0x5911010a92dd <unknown> #8 0x5911010aa34e <unknown> #9 0x5911013093e4 <unknown> #10 0x59110130d3d7 <unknown> #11 0x591101317b20 <unknown> #12 0x59110130e023 <unknown> #13 0x5911012dc1aa <unknown> #14 0x5911013326b8 <unknown> #15 0x591101332847 <unknown> #16 0x591101342243 <unknown> #17 0x766c40294ac3 <unknown> 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:56:51 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:56:52 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:56:52 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/company/about/ 2025-10-13 21:56:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 5/21 2025-10-13 21:56:57 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/company/about/ 2025-10-13 21:56:57 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:56:57 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:57:00 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: article 2025-10-13 21:57:00 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/company/about/ 2025-10-13 21:57:02 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: jquery 2025-10-13 21:57:02 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-13 21:57:02 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 21:57:02 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 21:57:02 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 21:57:05 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 5/21 2025-10-13 21:57:06 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 481 2025-10-13 21:57:08 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 481,內容可能已加載完成 2025-10-13 21:57:08 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:57:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:57:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:57:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:57:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:57:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:57:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:57:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:57:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:57:15 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 5/21 2025-10-13 21:57:25 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 5/21 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/company/about/ (實際 URL: https://www.garmin.com.tw/company/about/) 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 213883 字節 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 4681 字節 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 8282 字節 2025-10-13 21:57:26 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 343 字節 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 beautifulsoup_basic 作為最佳結果 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 8673 字節,約 891 個詞,290 行 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 定位  每個生命熱情所在 Engineered on the inside for life on the outside. 關於我們 ABOUT GARMIN Garmin 成立於 1989 年,研發總部位在美國,是全球最具指標性的 GPS 企業。近 30 年前,Garmin 以尖端的航空 GPS 導航產品進入市場,而後在航空、航海、車用市場都有完整的產品佈局,目前已是航空、航海、車用、運動健身產品等市場熟悉的領導品牌。結合驚豔設計、卓越品質與優異可靠度,創造絕佳的產品體驗,搭配完整的產品生態圈,Garmin 矢志成為熱愛生活者的理想品牌。 Garmin 影片故事 OUR MISSION 我們的使命是成為一個永續經營的公司;在汽車、航空、航海、戶外休閒、以及運動各領域,提供客戶生活中不可或缺的卓越產品。 OUR VISION 我們的願景是要在每一個市場領域都成為全球的領導者;以驚豔的設計,卓越的品質,以及超越的價值廣受客戶喜愛。 OUR VALUES 我們的企業文化是建立在誠實、廉正與尊重的基礎上;抱持决心全力以赴的精神,以實踐對同仁、客戶與合作夥伴的承諾。 創辦緣起 Our Founders Garmin 創立於 1989 年,由台灣南投竹山出生的高民環博士 (Dr. Min Kao) 與 Gary Burrell 共同創立。高民環博士 與 Gary Burrell 曾經是一起共事,兩人分別專精於航太、 GPS、導航與航空航海電子相關領域。共事時發現導航相關技術的巨大潛力,爾後一起攜手創業,矢志要成為全球航空、航海、車用及戶外導航和其他電子產品市場的領導者。品牌名稱 Garmin,正是兩人名字的組合 — Gary 與 Min。 創業初期產品就以一體式設計整合的 GPS100 導航設備大受好評,逐步將相關通訊與導航技術應用至航空、航海及車用導航、戶外及健身市場。 兩位創辦人相當重視事情的本質,而且以「求難、不求易」的經營哲學帶領 Garmin 走過 30 年各種起伏艱難挑戰。並以研發、生產製造、行銷、售後的「垂直整合」策略創造出極高的顧客滿意度。 歷史沿革 HISTORY 2024 Garmin Health 十周年,全球締造破千項健康醫療福祉研究,並參與具歷史性 Polaris Dawn 太空飛行任務研究。 2024 Garmin Health 十周年,全球締造破千項健康醫療福祉研究,並參與具歷史性 Polaris Dawn 太空飛行任務研究。 Garmin Health 十周年,運用 Garmin健康監測促成的臨床研究已累積逾千項,涵蓋睡眠、身心健康、癒後康復、肢體活動及疾病管理等多個面向。更在具歷史意義的Polaris Dawn載人太空飛行任務中擔任重要角色,透過 Garmin fēnix 7全天候監測,收集高準確度的生理健康數據,幫助科學家瞭解太空旅行對人體的影響。 2023 收購頂尖音響系統公司 JL Audio,進一步跨足與整合船用、車用與家用音響領域。 2023 收購頂尖音響系統公司 JL Audio,進一步跨足與整合船用、車用與家用音響領域。 Garmin 於 2023 年正式收購音響公司 JL Audio。JL Audio 致力於船艇、汽車及家居音響領域的設計和製造,Garmin 將整合其卓越的音質功能至 Garmin 產品生態系統中,進一步強化海上娛樂系統並跨足、車用與家用音響領域。 2022 Garmin 國際救援中心 Garmin Response Center (前IERCC) 累積達成10,000筆SOS戶外救援紀錄 2022 Garmin 國際救援中心 Garmin Response Center (前IERCC) 累積達成10,000筆SOS戶外救援紀錄 Garmin 2021年收購全球最大緊急事件監測和回應服務供應商GEOS Worldwide及其營運的國際緊急回應協調中心(IERCC),並於 2022 年正式更名為「Garmin Response Center 國際救援中心」。該中心透過Garmin inReach 衛星追蹤通訊裝置,累積達成 10,000 筆 SOS 戶外救援紀錄。Garmin 透過 inReach 技術讓用戶在進行戶外活動時若遇緊急危難,按下SOS緊急求助按鈕,將有專業人員即時追蹤用戶裝置位置並與用戶保持雙向文字訊息傳輸,同時通報急難救援單位及緊急連絡人予以協助、啟動救援。 2021 拓展泰國、越南分公司,亦擴增波蘭及台灣生產基地。 2021 拓展泰國、越南分公司,亦擴增波蘭及台灣生產基地。 正式於泰國及越南成立分公司拓展營運據點,同期於波蘭、台灣台南兩地設置智慧工廠擴大產能。 2020 導入 Garmin 獨有太陽能科技,開創智慧穿戴裝置電力續航的無限可能。 2020 導入 Garmin 獨有太陽能科技,開創智慧穿戴裝置電力續航的無限可能。 全面導入獨有太陽能科技,為全球唯一以太陽能輸出電力支援各種智慧運動模式的智慧錶,擁有超過30項專利技術的太陽能電力模組,首創 Power Glass™ 太陽能充電鏡面技術,並有世界首創的遮蔽不斷電設計,達到業界最強的5倍電力。推出三大系列太陽能GPS智慧腕錶:fēnix 6 Solar 系列、Instinct Solar、tactix Delta Solar,再創太陽能應用智慧穿戴領域巔峰。 2019 2019 – 邁入 30 周年,全新推出品牌旗下旗艦級智能工藝腕錶 ‒ MARQ 非凡時刻系列。 2019 2019 – 邁入 30 周年,全新推出品牌旗下旗艦級智能工藝腕錶 ‒ MARQ 非凡時刻系列。 邁向輝煌 30 周年,發布品牌最高階智能工藝腕錶 MARQ 非凡時刻系列,打造五只不凡的腕錶,包括全球唯一預載世界250個賽道的賽車錶、首創將 VO2 MAX 和預估恢復時間的量測刻度設計於錶圈上的運動家智能工藝腕錶、航海家智能工藝腕錶、探險者智能工藝腕錶、飛行員智能工藝腕錶,完美詮釋 Garmin 制霸的版圖,驅動基因裡的渴求,「定位 你的不平凡」。 2018 推出第一支專業潛水錶 Descent MK1,跨足潛水錶市場。 2018 推出第一支專業潛水錶 Descent MK1,跨足潛水錶市場。 GPS 水面活動導航及全彩地圖豐富功能,以手錶設計打造任何潛水者都會愛不釋手的潛水電腦。休閒、技術、自由潛水各種類型都適用;完整潛水資訊,採用 Bühlmann zhl-16c 演算法計算 NDL,詳盡資訊含氮氣涉入程度及減壓停留時間。 2017 航海產品獲頒 NMEA (美國國家海洋電子協會) 8 項大獎,並連續 3 年蟬聯最佳製造商。 2017 航海產品獲頒 NMEA (美國國家海洋電子協會) 8 項大獎,並連續 3 年蟬聯最佳製造商。 NMEA 為航海用電子設備標準格式的制定組織。除最佳製造商外,Garmin 囊括 7 項最佳產品獎,專案包含自動駕駛、多功能顯示器、探魚器、自動識別系統、導航輔助手機應用、綜合功能手機應用及多媒體娛樂。 2016 推出指針式智慧錶 vívomove ® ,跨足混合智慧穿戴市場。 2016 推出指針式智慧錶 vívomove ® ,跨足混合智慧穿戴市場。 首度以經典不敗的圓形錶面,突破智慧錶常見的方形設計;融合典雅雙弧線隱藏屏幕,內建計步及久坐提示功能;兼具簡約風格與智慧功能,開啟時計新篇章。 2015 成為 Red Bull Air Race 空中競技飛行世界錦標賽贊助夥伴,於日本千葉縣舉行亞洲專屬飛行賽。 2015 成為 Red Bull Air Race 空中競技飛行世界錦標賽贊助夥伴,於日本千葉縣舉行亞洲專屬飛行賽。 Red Bull Air Race 是世界引擎運動競速系列中速度最快的比賽,聚集了世界頂尖飛行員,呈現兼具速度、精准和高超技巧的飛行特技表演賽。選手駕駛最輕快敏捷的比賽專用機,在低空賽道上飛越幾個高 25 公尺的充氣障礙塔。 2014 推出為 Garmin 產品打造的開放平台 Connect IQ。 2014 推出為 Garmin 產品打造的開放平台 Connect IQ。 Garmin Connect IQ 回歸用戶需求,整合多樣功能:個性錶面下載,盡情表現自我風格;量身訂做 Widget 小工具,創造便利及實用機能;打造個人專屬資料欄位,隨時掌握身體資料;連結手機 App,控制串流影音播放。 2013 為 Mercedes-Benz 車款提供前裝導航系統。 2013 為 Mercedes-Benz 車款提供前裝導航系統。 多年來提供各大車廠前裝導航系統,Garmin 累積大量開發經驗,能協助駕駛辨識潛在危險及避免碰撞,大幅提升主動安全。MAP PILOT 整合式車用資訊娛樂系統,結合觸控及語音,以 3D 畫面即時顯示地形與地標,提升駕駛對前方路況變化的掌握能力。獲選全球第一汽車品牌 Mercedes Benz 導航系統特定車款供應商,印證了 Garmin 堅強的駕駛輔助系統開發能力。 2011 創辦人高民環博士獲選美國國家工程學院院士。 2011 創辦人高民環博士獲選美國國家工程學院院士。 美國國家工程學院 (National Academy of Engineering) 院士,授予在工程領域內從事研究、實踐和教育並有傑出貢獻的人士,是工程學界的最高榮譽。高民環博士以輕巧型 GPS 系統發展及商用推廣的卓越貢獻獲此殊榮。 2007 Clifton A. Pemble 受任為總裁與營運長。 2007 Clifton A. Pemble 受任為總裁與營運長。 Clifton 於 1989 年加入 Garmin,擔任軟體工程師,是最資深員工之一。歷任系統工程及軟體工程管理等職務,展現專業及領導多方面長才。Clifton 於 2013 年接替創辦人高民環博士,就任 Garmin 執行長。 2003 全球第一款腕表式健身導航產品 Forerunner 問世。這只歷史性的跑錶,不能不提它的傳奇身世。GPS 綁在手上的故事。 2003 全球第一款腕錶式健身導航產品 Forerunner 問世。這歷史性的跑錶,不能不提它的傳奇身世。GPS 綁在手上的故事。 由我們熱愛跑步的 Garmin 工程師,在某次測試中突發奇想,將登山用的 GPS 綁在手腕上,意外發現距離和速度的效能非常出色,這給了他一個靈感—何不把可攜式 GPS 做成跑步訓練裝置呢?靈光乍現就此催生了 Forerunner 201。 2001 全球第一台具語音播報功能的可攜式導航產品 StreetPilot ® III。 2001 全球第一台具語音播報功能的可攜式導航產品 StreetPilot ® III。 「提供必要資訊,讓使用者專注駕駛」是導航產品的重大使命。 StreetPilot III 賦予每雙握方向盤的手無比信心—輕鬆設定,就能上路。不只提供最短路徑、最快路徑等不同資訊;遇前方路口轉彎、偏移預設路徑情形時,會以語音提示,全程引導安抵目的地。 2000 美國政府取消干擾民用 GPS 訊號,GPS 定位效果大幅提升。 2000 美國政府取消干擾民用 GPS 訊號,GPS 定位效果大幅提升。 GPS 信號可分為民用的標準定位服務 (SPS) 和軍用的精確定位服務 (PPS)。美國政府為避免敵對國或組織利用 SPS 發動攻擊,就透過干擾降低 SPS 精度到 100 公尺以下,PPS 精度則為 10 公尺以下。2000 年 5 月,美國政府決定取消對民用訊號的選擇性干擾,GPS 商用的黃金時代就此到來。 1998 全球第一台結合手機功能的 GPS 產品 NavTalk ® 。 1998 全球第一台結合手機功能的 GPS 產品 NavTalk ® 。 領先業界結合通話與衛星定位功能,搭載高解析螢幕,能即時顯示發話地點;尖端 12 頻接收器,與享譽全球的 GPS III ® Plus 同款,訊息清晰穩定;內建地圖涵蓋美加及南美洲公路網完整圖資。讓戶外活動多一層保障,更是野外求生不可或缺。 1993 全球第一台航空用可攜式產品 GPS 95。 1993 全球第一台航空用可攜式產品 GPS 95。 在多數人對航空、導航還很陌生的年代,GPS 95 已能追蹤高達 8 顆衛星,並持續修正路徑;領先業界的圖像化螢幕顯示讓操作更直覺;儲存 500 筆使用者路線及多種返航路徑。資訊涵蓋飛航距離、時間及油耗預估,出發地與目的地日出及日落時間、降落前密度高度推估、即時飛行速度顯示等,以實用功能和簡易操作大受飛行員好評。 探索極智 豈止創新 Innovations 「垂直整合」是 Garmin 一大特色。 親力親為,從研發、製造、銷售到客服,每個環節都不假手他人,讓我們創造了巨大的產品優勢。 研發與製造的密切溝通,讓我們得以深入掌握材質、零件及製程的環節並達到優化; 透過機構設計,消除不同裝置彼此間的干擾、甚至採用更高容量的電池,卻不因此犧牲輕薄; 透過加速度計、陀螺儀與磁力計搭配共同使用,就可明確感測出本身移動的方向和角度等資訊, 上下樓梯、運動方式等,説明 GPS 增加定位精準度。 深入了解 Garmin 技術 全球佈局 Global for Local Garmin 產品足跡遍及全球。垂直整合的堅持始終如一, 結合研發、製造、銷售到客服,打造優異產品。也是創造使用者滿意的秘訣。 全球據點數 89 全球員工人數 > 22000 台灣國際航電股份有限公司 (汐止) 新北市汐止區樟樹二路68號 電話:+886 2-26428999 傳真:+886 2-26429099 台灣國際航電股份有限公司 (汐止遠雄U-TOWN) 新北市汐止區新台五路一段97號37樓 電話:+886 2-21653069 傳真:+886 2-26429099 台灣國際航電股份有限公司 (新店) 新北市新店區寶高路28號9樓 電話:+886 2-80010806 台灣國際航電股份有限公司 (林口) 桃園市龜山區華亞二路270號 電話:+886 3-3187099 傳真:+886 3-3187199 台灣國際航電股份有限公司 (中壢) 桃園市中壢區北園路24號 電話:+886 3-4622999 傳真:+886 3-4620570 台灣國際航電股份有限公司 (台南) 台南市新市區堤塘港路3號 電話:+886 6-5889909 傳真:+886 6-5025200 北京佳明航電科技有限公司 北京市朝陽區酒仙橋路14號兆維塔樓2層北側201室 郵編:100015 客服:400-819-1899 總機:+86 10-84475550 傳真:+86 10-84475030 上海佳明航電企業管理有限公司 上海市徐匯區桂平路391號新漕河涇國際商務中心A座37樓 郵編:200233 客服:400-819-1899 總機:+86 21-60737675 傳真:+86 21-61675039 成都佳明航電科技有限公司 四川省成都市高新區天華二路219號天府軟體園C區11棟3樓 郵編:610041 客服:400-819-1899 電話:+86 28-85171113 揚州佳明航電科技有限公司 江蘇省揚州市經濟開發區八里鎮金山路122號 郵編:225131 客服:400-819-1899 電話:+86 514-82169818 ガーミンジャパン株式会社 ふじみ野オフィス 〒354-0036 埼玉県富士見市ふじみ野東1-7-6 カスタマーサービス:0570-049530 (ナビダイヤル) 受注窓口:049-267-9141 ガーミンジャパン株式会社 横浜みなとみらいオフィス 〒231-0062 神奈川県横浜市中区桜木町一丁目1番7号ヒューリックみなとみらい12階 カスタマーサービス:0570-049530 (ナビダイヤル) 受注窓口:049-267-9141 ガーミンジャパン株式会社 Auto OEMオフィス 〒231-0021 神奈川県横浜市中区日本大通11番地 横浜情報文化センター12階 Garmin Korea Ltd. 4F,21(Samseongdong),Teheran-ro 87-gil,Gangnam-gu,Seoul, Republic of Korea. Phone: +82 -2-2141-5800 Fax: +82-2-568-5883 Garmin (Thailand) Ltd. 1788 SINGHA COMPLEX Building, 31st Floor, Unit 3107-3109, New Petchaburi Road, Bangkapi, Huai Kwang, Bangkok 10310, Thailand Phone: +66 2 262-8999 CÔNG TY TNHH GARMIN VIỆT NAM Phòng số 2, 3, 4, Lầu 16, Tòa nhà Phú Mỹ Hưng, Số 08, Đường Hoàng Văn Thái, Khu phố 1, Phường Tân Phú, Quận 7, Thành phố Hồ Chí Minh (Unit 2, 3, 4, 16th Floor, Phu My Hung Tower, No. 08, Hoang Van Thai Street, Quarter 1, Tan Phu Ward, District 7, Ho Chi Minh City, Vietnam) Tax Code: 0316546099 Phone: +84 28 54143899 Garmin International, Inc. 1200 E. 151st St. Olathe, KS 66062-3426 (Kansas City metro area) Phone: (913) 397-8200 Fax: (913) 397-8282 Garmin AT, Inc. 2345 Turner Road SE Salem, OR 97302 Phone: U.S. & International (503) 391-3411 Fax: (503) 364-2138 Garmin (Europe) Ltd. Liberty House Hounsdown Business Park, Southampton, SO40 9LR, UK Phone: +44 (0) 23 8052 4000 Fax: +44 (0) 23 8052 4004 Garmin Switzerland GmbH Mühlentalstrasse 2, 8200 Schaffhausen Switzerland Garmin Deutschland GmbH Parkring 35, 85748 Garching Bei Munchen, Germany Garmin France SAS 55 av. Des Champs Pierreux, 92000 Nanterre, France 訂閱電子報 Cookie Preferences 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:57:27 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 6/21 個網址 2025-10-13 21:57:27 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 2025-10-13 21:57:27 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 的第 1/3 次請求 2025-10-13 21:57:27 - 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 0x7013d6f2fb50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/5e4c26c1af90f05fd96233b8b5b1de72 2025-10-13 21:57:27 - 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 0x7013d70eb2d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/5e4c26c1af90f05fd96233b8b5b1de72 2025-10-13 21:57:27 - 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 0x7013d70eab50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/5e4c26c1af90f05fd96233b8b5b1de72 2025-10-13 21:57:27 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:57:27 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:57:27 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:57:27 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:57:27 - 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-13 21:57:27 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:57:27 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:57:27 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:57: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-13 21:57: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 0x56a5581844e3 <unknown> #1 0x56a557eb3c76 <unknown> #2 0x56a557edcd78 <unknown> #3 0x56a557ed9029 <unknown> #4 0x56a557f17ccc <unknown> #5 0x56a557f1747f <unknown> #6 0x56a557f0ede3 <unknown> #7 0x56a557ee42dd <unknown> #8 0x56a557ee534e <unknown> #9 0x56a5581443e4 <unknown> #10 0x56a5581483d7 <unknown> #11 0x56a558152b20 <unknown> #12 0x56a558149023 <unknown> #13 0x56a5581171aa <unknown> #14 0x56a55816d6b8 <unknown> #15 0x56a55816d847 <unknown> #16 0x56a55817d243 <unknown> #17 0x7c881b094ac3 <unknown> 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:57:27 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:57:28 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:57:28 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 2025-10-13 21:57:31 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 2025-10-13 21:57:31 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:57:31 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:57:31 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:57:31 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 2025-10-13 21:57:33 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 21:57:33 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 21:57:33 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 21:57:35 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 6/21 2025-10-13 21:57:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:57:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:57:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 152.5MB, CPU 0.0% 2025-10-13 21:57:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 21:57:45 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 6/21 2025-10-13 21:57:55 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 6/21 2025-10-13 21:58:03 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 230 2025-10-13 21:58:04 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 331 2025-10-13 21:58:05 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 6/21 2025-10-13 21:58:06 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 331,內容可能已加載完成 2025-10-13 21:58:06 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:58:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:58:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:58:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:58:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:58:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:58:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:58:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:58:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:58:09 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 21:58:09 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 21:58:16 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 6/21 2025-10-13 21:58:18 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps (實際 URL: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps) 2025-10-13 21:58:18 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:58:18 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:58:18 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:58:18 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 208171 字節 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 254 字節 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 931 字節 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 647 字節 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1322 字節,約 209 個詞,79 行 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 航海地圖(非Garmin 航圖機) 提供多款航圖機適用的海圖與地圖 Navionics+ 海圖提供整合的海洋內容,詳細呈現海岸地形以及全球數千條河流、海灣和湖泊。我們的高級版本,Navionics Platinum+ 海圖,包含 Navionics+ 圖表的所有內容,並提供高解析度陰影、衛星影像、航拍照片等更多觀賞選項(請參見比較)。這些產品是大多數熱門品牌航圖機的最佳選擇(請檢查兼容性)。注意:如果您擁有 Garmin 航圖機,您會想選擇我們的 Garmin Navionics+ charts 圖表。 請選擇分類 + Garmin Navionics+ Cartography 8 + 航海地圖(非Garmin 航圖機) 7 Yellow Sea - Marine Charts Taiwan - Marine Charts South China & Andaman Seas - Marine Charts Philippines - Marine Charts Indian Subcontinent - Marine Charts Japan - Lakes and Coastal Marine Charts China Sea & Japan - Marine Charts 最多比較 4 項產品 功能比較 清除全部 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:58:19 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 7/21 個網址 2025-10-13 21:58:19 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 2025-10-13 21:58:19 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 的第 1/3 次請求 2025-10-13 21:58: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 0x7013d6f03710>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/8c2d9cf9d70cae83167ed92752a479b1 2025-10-13 21:58: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 0x7013d737a850>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/8c2d9cf9d70cae83167ed92752a479b1 2025-10-13 21:58: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 0x7013d737b5d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/8c2d9cf9d70cae83167ed92752a479b1 2025-10-13 21:58:19 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:58:19 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:58:19 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:58:19 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:58:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:58: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-13 21:58:19 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:58:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:58:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:58: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-13 21:58: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 0x581cf7cb24e3 <unknown> #1 0x581cf79e1c76 <unknown> #2 0x581cf7a0ad78 <unknown> #3 0x581cf7a07029 <unknown> #4 0x581cf7a45ccc <unknown> #5 0x581cf7a4547f <unknown> #6 0x581cf7a3cde3 <unknown> #7 0x581cf7a122dd <unknown> #8 0x581cf7a1334e <unknown> #9 0x581cf7c723e4 <unknown> #10 0x581cf7c763d7 <unknown> #11 0x581cf7c80b20 <unknown> #12 0x581cf7c77023 <unknown> #13 0x581cf7c451aa <unknown> #14 0x581cf7c9b6b8 <unknown> #15 0x581cf7c9b847 <unknown> #16 0x581cf7cab243 <unknown> #17 0x7ec320894ac3 <unknown> 2025-10-13 21:58:20 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:58:20 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:58:20 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:58:20 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 2025-10-13 21:58:26 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 7/21 2025-10-13 21:58:36 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 7/21 2025-10-13 21:58:37 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 2025-10-13 21:58:37 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:58:37 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:58:37 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:58:37 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 2025-10-13 21:58:39 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 21:58:39 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 21:58:39 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 21:58:46 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 7/21 2025-10-13 21:58:56 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 7/21 2025-10-13 21:59:06 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 7/21 2025-10-13 21:59:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 21:59:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 21:59:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 152.5MB, CPU 0.0% 2025-10-13 21:59:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:59:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 21:59:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 21:59:09 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 1796 2025-10-13 21:59:10 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 438 2025-10-13 21:59:12 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 438,內容可能已加載完成 2025-10-13 21:59:12 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 21:59:15 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 21:59:15 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 21:59:16 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 7/21 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment (實際 URL: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment) 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 247727 字節 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 2871 字節 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 2726 字節 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 3262 字節,約 433 個詞,169 行 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:2178] - extract_text_from_html - 提取的最終文本內容: This site uses cookies and related technologies for site operation, analytics, and third party advertising purposes. You may choose to consent to our use of these technologies, reject non-essential technologies, or further manage your preferences. Privacy Policy Accept Decline Manage Settings 跳過導航連結 服務支援 客戶服務支援中心 維修服務 智能客服 帳戶資訊 查詢訂單 登入 0 Total items in cart: 0 Fusion 航海娛樂系統 裝載一流的船上影音娛樂設備,以悠揚樂曲陪伴您徜徉水上的時間。 請選擇分類 + 漁業用設備 17 + 航圖機 & 魚探機 29 + 聲納模組 6 + 探頭 90 + 即時動態聲納 8 + 風速儀 & 顯示儀器 20 + 無線電通訊 10 + 天線與感測器 8 + 自動舵 25 + Fusion 航海娛樂系統 22 + 數位開關 2 + 多功能網路型產品 7 + 雷達 7 + 帆船產品 25 + 手持與穿戴式裝置 5 + 電動船外機 4 + 攝影機 3 + 應用程式 2 Fusion Apollo MS-RA800 Marine Stereo 頂級觸控式音響系統,內建 Wi-Fi 連線功能。 Fusion Apollo MS-RA800 是一款船用音響,具備強大的內建擴大器、支援 AirPlay® 音訊串流的 Wi-Fi 連線功能,以及高解析度顯示螢幕。 Fusion Apollo Subwoofer 不僅要聽見音樂,更要感受音樂。透過 Fusion Apollo 海洋超低音揚聲器,沉浸於水上環繞的高保真低音體驗。隨附的運動白或運動灰護網,為您的船隻增添風采,完美呈現個性化風格。 Fusion Apollo Speakers 透過 Fusion Apollo 船用揚聲器,沉浸於水上環繞的高保真音效中。隨附的運動白或運動灰揚聲器護網,完美襯托您的船艦風格。 Fusion NRX 有線遙控器 Fusion NRX300 有線遙控器可讓您在船上的任何區域新增本地化音訊控制 Fusion Apollo MS-WB675 Marine Hideaway Stereo 是一款設計小巧的隱藏式音響,能帶來卓越音質,4 個獨立聆聽區域,並能透過 Apple AirPlay® 2 串流音樂 Fusion MS-WB675 是一款設計小巧的隱藏式音響,能帶來卓越音質,4 個獨立聆聽區域,並能透過 Apple AirPlay® 2 串流音樂。 Fusion EL Series Marine Speakers EL Series 揚聲器經特殊設計,可在船上傳遞優質音效及多色 RGB LED 照明 Fusion EL Series Marine Speakers 利用 Fusion 的 EL 系列揚聲器欣賞優質音訊與多色 RGB LED 照明,以強化您的航行體驗 Fusion Signature Series 3i Marine Coaxial Speakers Signature Series 3i 重低音揚聲器透過頂級的低頻表現重現音樂的震撼效果,提升您的聆聽體驗 Fusion Signature Series 3i Marine Subwoofers Signature Series 3i 重低音揚聲器透過頂級的低頻表現重現音樂的震撼效果,提升您的音質享受 Fusion Signature Series 3i Marine Wake Tower Speakers 穿梭驚濤駭浪。 利用 Signature Series 3i 滑水架揚聲器,在尾波上享受清晰無比的音質 Fusion 手持式麥克風 Fusion 手持式麥克風可讓您透過船上音訊娛樂系統發布通知 Fusion Signature 系列船用擴大機 Signature 系列船用擴大機專為航海環境而設計,可在水上展現 Signature 的出色性能 Signature 系列船用擴大機專為航海環境而設計,可在水上展現 Signature 的出色性能。 Fusion Signature Series 3 船用揚聲器 船用揚聲器 Fusion Signature Series 3 船用揚聲器即使身處在惡劣的海洋環境,也能提供無與倫比的高性能。 Fusion Signature Series 3 船用揚聲器即使身處在惡劣的海洋環境,也能提供無與倫比的高性能。 Fusion Apollo 船用擴大機 由於您在乎所使用的船用音響系統,所以您需要功能強大的單聲道、多聲道或區域擴大機,讓您的音樂宛如現場演奏 由於您在乎所使用的船用音響系統,所以您需要功能強大的單聲道、多聲道或區域擴大機,讓您的音樂宛如現場演奏。 Fusion RA70 系列船用音響 Fusion 的 RA70 系列包括三個 DIN 尺寸的船用音響,設計宗旨為以超值的價格提供優質的水上音訊娛樂體驗 Fusion RA210 船用音響 Fusion 的 MS-RA210 小巧型船用音響採用現代設計美學與內建 DSP 技術,可提供最佳音訊娛樂體驗 Fusion Apollo 系列船用音響 全球首款配備 AirPlay® 軟體功能和內建 Wi-Fi® 連線功能的觸控螢幕式船用音響,以革命性的技術及創新的設計重新定義了音訊的卓越程度 Fusion Apollo RA770 是一款船用娛樂系統,並配備全球首款具 AirPlay® 2 軟體功能和內建 Wi-Fi® 連線的觸控螢幕式船用音響。 Fusion XS系列船用揚聲器 透過 Fusion 的 XS 系列揚聲器,等同以中價位享受高性能的音響效果、增強的環境防護與多色 RGB LED 照明 Fusion Panel-Stereo Fusion Panel-Stereo 是一套隨插即用的多合一解決方案,適用於水上高品質音訊娛樂 Fusion Apollo 船用音響 身為 Apollo RA770 的最佳拍檔,Apollo SRX400 區域音響系統在小巧的外形中結合了優質設計與卓越音質 Fusion ARX 無線遙控器 身為 Apollo RA770 的最佳拍檔,Apollo SRX400 區域音響系統在小巧的外形中結合了優質設計與卓越音質 Fusion MS-RA60 船用音響 MS-RA60 是一款經濟型船用音響,具備現代美學、多區域技術與先進的連線選項 MS-RA60 是一款經濟型船用音響,具備現代美學、多區域技術與先進的連線選項。 最多比較 4 項產品 功能比較 清除全部 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 Garmin • 新鮮人與實習生專區 • 新聞稿 • 投資情報 • 永續發展 • Garmin 部落格 • Garmin Connect • Garmin Express • Garmin Explore • Connect IQ • Garmin Sports • flyGarmin • Garmin Health 企業解決方案 • Automotive OEM 解決方案 • 開發人員 • 業務合作 • 技術合作 • Garmin on Facebook • Garmin on YouTube • Garmin on Instagram • 網站地圖 • 使用條款 • 隱私權聲明 • 資訊安全 2025-10-13 21:59:25 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 8/21 個網址 2025-10-13 21:59:25 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 2025-10-13 21:59:25 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 的第 1/3 次請求 2025-10-13 21:59:25 - 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 0x7013d7c0cfd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f2b419bb7200fbbb5480d0c8b2350610 2025-10-13 21:59:25 - 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 0x7013d7384d10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f2b419bb7200fbbb5480d0c8b2350610 2025-10-13 21:59:25 - 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 0x7013d7160e50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f2b419bb7200fbbb5480d0c8b2350610 2025-10-13 21:59:25 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 21:59:25 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 21:59:25 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 21:59:25 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 21:59:25 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:59:25 - 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-13 21:59:25 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 21:59:25 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:59:26 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 21:59:26 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 21:59:26 - 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 0x5fe74c7e74e3 <unknown> #1 0x5fe74c516c76 <unknown> #2 0x5fe74c53fd78 <unknown> #3 0x5fe74c53c029 <unknown> #4 0x5fe74c57accc <unknown> #5 0x5fe74c57a47f <unknown> #6 0x5fe74c571de3 <unknown> #7 0x5fe74c5472dd <unknown> #8 0x5fe74c54834e <unknown> #9 0x5fe74c7a73e4 <unknown> #10 0x5fe74c7ab3d7 <unknown> #11 0x5fe74c7b5b20 <unknown> #12 0x5fe74c7ac023 <unknown> #13 0x5fe74c77a1aa <unknown> #14 0x5fe74c7d06b8 <unknown> #15 0x5fe74c7d0847 <unknown> #16 0x5fe74c7e0243 <unknown> #17 0x78a25ae94ac3 <unknown> 2025-10-13 21:59:26 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 21:59:26 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 21:59:26 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 21:59:26 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 2025-10-13 21:59:26 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 8/21 2025-10-13 21:59:29 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 2025-10-13 21:59:29 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 21:59:29 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 21:59:29 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 21:59:29 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 2025-10-13 21:59:31 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 21:59:31 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 21:59:31 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 21:59:37 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 8/21 2025-10-13 21:59:47 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 8/21 2025-10-13 21:59:57 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 8/21 2025-10-13 22:00:02 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 1575 2025-10-13 22:00:03 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 510 2025-10-13 22:00:05 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 510,內容可能已加載完成 2025-10-13 22:00:05 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:00:07 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 8/21 2025-10-13 22:00:08 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:00:08 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:00:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:00:08 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_21.log,新:20251013_22.log 2025-10-13 22:00:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:00:08 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_21.log,新:20251013_22.log 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:00:09 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_21.log,新:20251013_22.log 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:00:09 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_21.log,新:20251013_22.log