日誌查看 - 20251013_22.log
文件大小: 458.43 KB 最後修改: 2025-10-13 23:04:35
2025-10-13 22:00:08 - 初始化新小時日誌檔案 2025-10-13 22:00:08 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_22.log 2025-10-13 22:00:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 22:00:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:00:08 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_22.log 2025-10-13 22:00:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 22:00:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:00:09 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_22.log 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:00:09 - INFO - main - [app_initializer.py:383] - update_hourly_log_file - 小時日誌檔案已更新: 20251013_22.log 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: True 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:00:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:00:17 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 8/21 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking (實際 URL: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking) 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:00:17 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 252096 字節 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 4261 字節 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 4130 字節 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 4652 字節,約 497 個詞,242 行 2025-10-13 22:00:18 - 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 健康手錶 你怎麼定義“健康”?可能是動更多、睡更好、肌肉更多、壓力更小… 整合全球知名生理數據團隊 Firstbeat Analytics ,為每個人的健康需求,追蹤趨勢分析,陪你越來越健康。 請選擇分類 + 所有智慧穿戴手錶 66 + 戶外運動手錶 28 + 跑步手錶 7 + 越野跑手錶 13 + 室內健身手錶 12 + 複合式 & 三鐵錶 33 + 潛水錶 6 + 游泳錶 42 + 高爾夫手錶 11 + 女性手錶 28 + 時尚手錶 17 + 健康手錶 18 + 支援心電圖App手錶 14 + 行動支付 & 悠遊卡手錶 51 + 行動支付 & 一卡通手錶 2 + 音樂手錶 30 + 航海錶 3 + 航空錶 1 + MARQ 工藝腕錶 9 功能比較 NEW Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Venu 4 是一款小錶徑的健康與健身智慧手錶,搭載明亮 AMOLED 螢幕、24/7 全天候健康追蹤、多頻多衛星定位、LED 手電筒,以及長達 10 天的電池續航。 NT$ 16,990 Venu X1 全方位 GPS 智慧腕錶 俐落輕量、配備明亮 2 吋 AMOLED 螢幕並搭載進階健康及健身功能的 GPS 智慧腕錶。 Venu X1劃時代的極致纖薄設計,結合2吋AMOLED高清螢幕與藍寶石鏡面,兼具質感與耐用性。整合實用功能與先進健康監測,從科學化訓練、恢復建議到戶外探索,全方位支援每一步挑戰,助你突破極限、超越自我。 NT$ 23,990 vívoactive 6 系列 GPS 智慧腕錶 這款健康與健身 GPS 智慧手錶配備 AMOLED 螢幕、健身功能、基本健康追蹤和智慧功能。 vívoactive 6 智慧手錶 AMOLED 螢幕亮度再升級,電池續航力最長可達 11 天。提供全天候健康追蹤及豐富運動健身功能,隨時應援一切所需。 NT$ 9,990 智慧手錶怎麼選? 了解更多 >> Lily 2 活力版系列 智慧腕錶 LILY了解你-關注潮流、愛好運動。它擁有超越智慧錶的珠寶配飾外型,全新搭載 GPS。 NT$ 9,990 Lily 2 系列 智慧腕錶 LILY了解你-關注潮流、在意健康,它擁有超越智慧錶的珠寶配飾外型,且搭備皮革&編織錶帶及 Garmin Pay 感應支付功能 想要時尚的印花錶盤?還是要智慧觸控螢幕?何不兩者兼得?小巧時尚的智慧腕錶,幫您追蹤重要的健康數據。在如此迷人的腕錶上還能讀取簡訊、來電及行事曆提示2?沒錯,就是這麼棒。是的,這支手錶還能追蹤您的步數、睡眠狀況、壓力及身體能量指數。內建瑜珈、健行、心肺、呼吸練習及更多活動 app,提升健康不麻煩。別讓生活暫停。電池效能長達 5 天,讓您每次充電後用得更久。 NT$ 7,990 Lily 2 經典款系列 智慧腕錶 LILY了解你-關注潮流、在意健康,它擁有超越智慧錶的珠寶配飾外型,且搭備皮革&編織錶帶及 Garmin Pay 感應支付功能 想要時尚的印花錶盤?還是要智慧觸控螢幕?何不兩者兼得?小巧時尚的智慧腕錶,幫您追蹤重要的健康數據。在如此迷人的腕錶上還能讀取簡訊、來電及行事曆提示?沒錯,就是這麼棒。是的,這支手錶還能追蹤您的步數、睡眠狀況、壓力及身體能量指數。內建瑜珈、健行、心肺、呼吸練習及更多活動 app,提升健康不麻煩。別讓生活暫停。電池效能長達 5 天,讓您每次充電後用得更久。 NT$ 9,990 SALE vívoactive 5 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,vívoactive 5 不只是支智慧手錶 — 而是能支持你達成任何目標的個人腕上教練。 vivoactive 5 GPS 智慧手錶搭載先進的 AMOLED 觸控螢幕,提供最長達 11 天的持久電池壽命。透過此智慧手錶,您可以獲得豐富的健康資訊,同時內建多款運動應用程式和專業運動課程,讓您全面掌握健康狀況,享受高效運動體驗。 NT$ 6,990 NT$ 9,990 Venu 3 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,還可撥打電話及發送簡訊,Venu 3不只是支智慧手錶-而是能時刻陪伴你,支持你達成任何目標的個人腕上教練。 NT$ 14,990 為什麼選Garmin手錶? 立即看心得 >> 一天要睡多久才夠? 了解更多 >> vívomove Trend 系列 指針智慧腕錶 結合傳統指針腕錶外型與基本的智慧功能,例如接收來自相容智慧型手機的通知以及 Garmin Pay 感應支付 vívomove Trend 複合式智慧腕錶結合傳統指針腕錶外型與基本的智慧功能,例如接收來自相容智慧型手機的通知以及 Garmin Pay 感應支付。 NT$ 9,900 Lily 系列 智慧腕錶 小巧精緻的Lily智慧腕錶,時尚印花錶盤搭載隱藏式螢幕,優雅從容掌握全天健康數據 想要時尚的印花錶盤?還是要智慧觸控螢幕?何不兩者兼得?小巧時尚的智慧腕錶,幫您追蹤重要的健康數據。在如此迷人的腕錶上還能讀取簡訊、來電及行事曆提示2?沒錯,就是這麼棒。是的,這支手錶還能追蹤您的步數、睡眠狀況、壓力及身體能量指數。內建瑜珈、健行、心肺、呼吸練習及更多活動 app,提升健康不麻煩。別讓生活暫停。電池效能長達 5 天,讓您每次充電後用得更久。 NT$ 6,990 Venu Sq 2 Music系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 8,990 Venu Sq 2 系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 7,990 vívosmart 5 系列 健康心率手環 親膚材質,配戴舒適,並提供全天候健康監測 準備好,更健康-YOU GOT THIS,親膚材質,配戴舒適,並提供全天候健康監測。vívosmart 5 能時刻陪伴動靜皆宜的你。 NT$ 4,690 Venu 2 Plus 系列 GPS 智慧腕錶 具備進階健康監測及健身功能,不只傾聽您的健康狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,更可享受在手上撥打及接聽電話的輕鬆便利 Venu 2 Plus具備進階健康監測及健身功能,可傾聽並幫助您掌握自身體能狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,即可享受從手上撥打及接聽電話的輕鬆便利,甚至能呼叫手機的語音助理回覆文字訊息。 NT$ 14,990 vívomove Sport 系列 指針智慧腕錶 融合永恆經典的腕錶造型及智慧科技,敲敲錶面,即刻喚醒觸控螢幕,品味型動生活 NT$ 5,990 Venu 2 系列 GPS 智慧腕錶 活得健康就會活得更好。這款 GPS 智慧腕錶具備進階健康偵測及健身功能,可幫助您更了解體內的狀態 追蹤更多的健康數據,幫助您更了解體內的狀態。利用 25 種以上的內建運動應用程式,探索運動的新樂趣。需要教練指導嗎?訓練動畫就在您的手腕上。下載喜歡的歌曲到您的腕錶上,手機不再永不離身。支援 Garmin Pay 行動支付服務,出門不帶錢包也能輕鬆購物付款。精緻細膩的 AMOLED 螢幕還能有11 天電量?沒錯,又多了兩個愛上這款腕錶的理由。 NT$ 13,990 vívomove Luxe 系列 指針智慧腕錶 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒。只需輕滑錶面,即刻喚醒隱藏式觸控螢幕。vívomove Style與vívomove Luxe更具備金屬材質機身及全彩AMOLED螢幕,多種樣式供您選擇。多樣身心健康功能則有助於您追蹤壓力狀態及目前的身體能量指數。需要運動健身時,連上智慧型手機的GPS即可追蹤戶外步行及跑步。充電一次,電池效能長達4天,手錶模式,則可達一星期,少了每天充電的麻煩,更多了生活上的便利。 NT$ 17,990 vívomove Style 指針智慧腕錶 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒。只需輕滑錶面,即刻喚醒隱藏式觸控螢幕。vívomove Style與vívomove Luxe更具備金屬材質機身及全彩AMOLED螢幕,多種樣式供您選擇。多樣身心健康功能則有助於您追蹤壓力狀態及目前的身體能量指數。需要運動健身時,連上智慧型手機的GPS即可追蹤戶外步行及跑步。充電一次,電池效能長達4天,手錶模式,則可達一星期,少了每天充電的麻煩,更多了生活上的便利。 NT$ 11,990 最多比較 4 項產品 功能比較 清除全部 追蹤、分析與分享你的數據 拜訪 Garmin Connect 下載更多擴充功能 拜訪 Connect IQ 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 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 22:00:18 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 9/21 個網址 2025-10-13 22:00:18 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/wearables/?cat=ecg 2025-10-13 22:00:18 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/wearables/?cat=ecg, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/wearables/?cat=ecg 的第 1/3 次請求 2025-10-13 22:00:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d6c23c10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b8a8ac861229f7ca0d8fed18053f2aa3 2025-10-13 22:00:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d7160cd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b8a8ac861229f7ca0d8fed18053f2aa3 2025-10-13 22:00:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d53ccd10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/b8a8ac861229f7ca0d8fed18053f2aa3 2025-10-13 22:00:18 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:00:18 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:00:18 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:00:18 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:00:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:00:18 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-13 22:00:18 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:00:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:00:19 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:00:19 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 22:00:19 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x6392e46b74e3 <unknown> #1 0x6392e43e6c76 <unknown> #2 0x6392e440fd78 <unknown> #3 0x6392e440c029 <unknown> #4 0x6392e444accc <unknown> #5 0x6392e444a47f <unknown> #6 0x6392e4441de3 <unknown> #7 0x6392e44172dd <unknown> #8 0x6392e441834e <unknown> #9 0x6392e46773e4 <unknown> #10 0x6392e467b3d7 <unknown> #11 0x6392e4685b20 <unknown> #12 0x6392e467c023 <unknown> #13 0x6392e464a1aa <unknown> #14 0x6392e46a06b8 <unknown> #15 0x6392e46a0847 <unknown> #16 0x6392e46b0243 <unknown> #17 0x707a4e294ac3 <unknown> 2025-10-13 22:00:19 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:00:19 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:00:19 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:00:19 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/wearables/?cat=ecg 2025-10-13 22:00:22 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=ecg 2025-10-13 22:00:22 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:00:22 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:00:22 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:00:22 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=ecg 2025-10-13 22:00:24 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:00:24 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:00:24 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:00:27 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 9/21 2025-10-13 22:00:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 22:00:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:00:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 182.5MB, CPU 0.0% 2025-10-13 22:00:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:00:37 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 9/21 2025-10-13 22:00:47 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 9/21 2025-10-13 22:00:55 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 1477 2025-10-13 22:00:56 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 479 2025-10-13 22:00:57 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 9/21 2025-10-13 22:00:58 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 479,內容可能已加載完成 2025-10-13 22:00:58 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:01:01 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:01:01 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:01:08 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 9/21 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:01:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/wearables/?cat=ecg (實際 URL: https://www.garmin.com.tw/products/wearables/?cat=ecg) 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 243126 字節 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 3009 字節 2025-10-13 22:01:10 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 2884 字節 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=True, 分數=1 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2152] - extract_text_from_html - 根據聯絡信息分數 1 選擇 beautifulsoup_basic 作為最佳結果 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 3400 字節,約 459 個詞,211 行 2025-10-13 22:01:11 - 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 支援心電圖App手錶 只需 30 秒,隨時隨地記錄你的心律,並檢查心房顫動 (AFib) 或正常竇性心律的跡象。 台灣國際航電股份有限公司 “台灣國際航電”心電圖應用軟體("Garmin" ECG App) 衛部醫器製字第 007965 號,北衛器廣字第 11209032 號 請選擇分類 + 所有智慧穿戴手錶 66 + 戶外運動手錶 28 + 跑步手錶 7 + 越野跑手錶 13 + 室內健身手錶 12 + 複合式 & 三鐵錶 33 + 潛水錶 6 + 游泳錶 42 + 高爾夫手錶 11 + 女性手錶 28 + 時尚手錶 17 + 健康手錶 18 + 支援心電圖App手錶 14 + 行動支付 & 悠遊卡手錶 51 + 行動支付 & 一卡通手錶 2 + 音樂手錶 30 + 航海錶 3 + 航空錶 1 + MARQ 工藝腕錶 9 功能比較 NEW Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Venu 4 是一款小錶徑的健康與健身智慧手錶,搭載明亮 AMOLED 螢幕、24/7 全天候健康追蹤、多頻多衛星定位、LED 手電筒,以及長達 10 天的電池續航。 NT$ 16,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 智慧手錶怎麼選? 了解更多 >> NEW quatix 8 高效能航海智慧手錶 頂級航海智慧手錶配備 AMOLED 螢幕、航圖機控制與內建手電筒。 quatix 8 航海智慧手錶配備明亮的 1.4 吋 AMOLED 螢幕和 LED 手電筒,讓你無論在船上或下了船,都能盡情享受它提供的功能。 NT$ 38,990 Forerunner 970 GPS 全方位鐵人運動錶 搭載 AMOLED 全彩炫色觸控螢幕,訓練完備程度陪你挺進各種大小賽事 Forerunner 970是一款旗艦級GPS 全方位鐵人運動錶,具備明亮螢幕、內建喇叭與麥克風、內建地圖、訓練功能,電池續航力最長可達 15 天。 NT$ 23,990 tactix 8 – AMOLED Edition 全方位進階軍用戰術錶 你想為野外任務做好準備。你想要一支搭載調適型 AMOLED 螢幕、戰術功能、內建手電筒、預載 TOPO 地圖等功能的專業 GPS 智慧手錶。 tactix 8 是一款具備AMOLED螢幕、鈦金屬錶圈、內建多色手電筒,並在智慧手錶模式下擁有最長29天電池續航的戰術智慧手錶。 NT$ 46,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 為什麼選Garmin手錶? 立即看心得 >> quatix 7 Pro 航海商務智慧手錶 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 NT$ 32,990 tactix 7 – AMOLED Edition 全方位進階軍用戰術錶 你想為野外任務做好準備。你想要一支搭載調適型 AMOLED 螢幕、戰術功能、內建手電筒、預載 TOPO 地圖等功能的專業 GPS 智慧手錶。 NT$ 44,990 Venu 3 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,還可撥打電話及發送簡訊,Venu 3不只是支智慧手錶-而是能時刻陪伴你,支持你達成任何目標的個人腕上教練。 NT$ 14,990 fēnix 7 Pro 系列 全方位戶外進階GPS智慧腕表系列 透過進階訓練功能、全天候健康和保健監測、Power Sapphire 太陽能鏡面提供超過一個月的電池效能,以及強悍耐用的錶殼,征服每一刻 NT$ 29,990 epix Pro 系列 全方位戶外進階GPS智慧腕表系列 藉由進階訓練功能、全天健康及保健監測以及智慧手錶模式下可達 16天的電池效能,征服每一刻。用極美的防刮藍寶石鏡面 AMOLED 螢幕,查看你的所有數據 epix Pro Sapphire 是一款多功能運動手錶,配備藍寶石水晶鏡片、AMOLED 高畫質螢幕、長達 16 天的電池壽命和內建手電筒。 NT$ 32,990 Venu 2 Plus 系列 GPS 智慧腕錶 具備進階健康監測及健身功能,不只傾聽您的健康狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,更可享受在手上撥打及接聽電話的輕鬆便利 Venu 2 Plus具備進階健康監測及健身功能,可傾聽並幫助您掌握自身體能狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,即可享受從手上撥打及接聽電話的輕鬆便利,甚至能呼叫手機的語音助理回覆文字訊息。 NT$ 14,990 最多比較 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 22:01:11 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 10/21 個網址 2025-10-13 22:01:11 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/wearables/?cat=music 2025-10-13 22:01:11 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/wearables/?cat=music, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/wearables/?cat=music 的第 1/3 次請求 2025-10-13 22:01:11 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d53cdc50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/4bd9da1a2b31dfcf2ef315fca34a345d 2025-10-13 22:01:11 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d5676410>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/4bd9da1a2b31dfcf2ef315fca34a345d 2025-10-13 22:01:11 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d5676a50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/4bd9da1a2b31dfcf2ef315fca34a345d 2025-10-13 22:01:11 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:01:11 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:01:11 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:01:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:01:11 - 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 22:01:11 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:01:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:01:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:01:11 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 22:01:11 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x5d05db96a4e3 <unknown> #1 0x5d05db699c76 <unknown> #2 0x5d05db6c2d78 <unknown> #3 0x5d05db6bf029 <unknown> #4 0x5d05db6fdccc <unknown> #5 0x5d05db6fd47f <unknown> #6 0x5d05db6f4de3 <unknown> #7 0x5d05db6ca2dd <unknown> #8 0x5d05db6cb34e <unknown> #9 0x5d05db92a3e4 <unknown> #10 0x5d05db92e3d7 <unknown> #11 0x5d05db938b20 <unknown> #12 0x5d05db92f023 <unknown> #13 0x5d05db8fd1aa <unknown> #14 0x5d05db9536b8 <unknown> #15 0x5d05db953847 <unknown> #16 0x5d05db963243 <unknown> #17 0x76c564694ac3 <unknown> 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:01:11 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:01:12 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:01:12 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/wearables/?cat=music 2025-10-13 22:01:15 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=music 2025-10-13 22:01:15 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:01:15 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:01:15 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:01:15 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=music 2025-10-13 22:01:17 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:01:17 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:01:17 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:01:18 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 10/21 2025-10-13 22:01:28 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 10/21 2025-10-13 22:01:38 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 10/21 2025-10-13 22:01:47 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 2914 2025-10-13 22:01:48 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 10/21 2025-10-13 22:01:48 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 586 2025-10-13 22:01:50 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 586,內容可能已加載完成 2025-10-13 22:01:50 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:01:53 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:01:53 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:01:58 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 10/21 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/wearables/?cat=music (實際 URL: https://www.garmin.com.tw/products/wearables/?cat=music) 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 271428 字節 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 6209 字節 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 6078 字節 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 6600 字節,約 750 個詞,320 行 2025-10-13 22:02: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 音樂手錶 運動健身或訓練,下載最愛歌單到手錶,有音樂隨行,輕裝上陣,活力滿滿。需搭配個人付費藍牙耳機, 了解更多第三方音樂串流平台 ( KKBOX / Spotify ) 。 請選擇分類 + 所有智慧穿戴手錶 66 + 戶外運動手錶 28 + 跑步手錶 7 + 越野跑手錶 13 + 室內健身手錶 12 + 複合式 & 三鐵錶 33 + 潛水錶 6 + 游泳錶 42 + 高爾夫手錶 11 + 女性手錶 28 + 時尚手錶 17 + 健康手錶 18 + 支援心電圖App手錶 14 + 行動支付 & 悠遊卡手錶 51 + 行動支付 & 一卡通手錶 2 + 音樂手錶 30 + 航海錶 3 + 航空錶 1 + MARQ 工藝腕錶 9 功能比較 NEW Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Venu 4 是一款小錶徑的健康與健身智慧手錶,搭載明亮 AMOLED 螢幕、24/7 全天候健康追蹤、多頻多衛星定位、LED 手電筒,以及長達 10 天的電池續航。 NT$ 16,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 智慧手錶怎麼選? 了解更多 >> NEW quatix 8 高效能航海智慧手錶 頂級航海智慧手錶配備 AMOLED 螢幕、航圖機控制與內建手電筒。 quatix 8 航海智慧手錶配備明亮的 1.4 吋 AMOLED 螢幕和 LED 手電筒,讓你無論在船上或下了船,都能盡情享受它提供的功能。 NT$ 38,990 Venu X1 全方位 GPS 智慧腕錶 俐落輕量、配備明亮 2 吋 AMOLED 螢幕並搭載進階健康及健身功能的 GPS 智慧腕錶。 Venu X1劃時代的極致纖薄設計,結合2吋AMOLED高清螢幕與藍寶石鏡面,兼具質感與耐用性。整合實用功能與先進健康監測,從科學化訓練、恢復建議到戶外探索,全方位支援每一步挑戰,助你突破極限、超越自我。 NT$ 23,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 vívoactive 6 系列 GPS 智慧腕錶 這款健康與健身 GPS 智慧手錶配備 AMOLED 螢幕、健身功能、基本健康追蹤和智慧功能。 vívoactive 6 智慧手錶 AMOLED 螢幕亮度再升級,電池續航力最長可達 11 天。提供全天候健康追蹤及豐富運動健身功能,隨時應援一切所需。 NT$ 9,990 為什麼選Garmin手錶? 立即看心得 >> fēnix E 全方位戶外進階GPS智慧腕錶 你是個想要突破自我極限的專業運動員/冒險玩家,想擁有一款提供聚焦式肌力訓練、地形圖等功能的高效能 GPS 智慧手錶。fēnix E 正符合你的需要。 戴上強大的 fēnix E 複合式運動 GPS 智慧手錶,迎接你最艱鉅的運動或戶外挑戰。使用全天健康與保健監測、動態往返路線規劃等必備功能,增進你的體力及表現。 NT$ 26,990 Descent G2 GPS潛水電腦錶 以腕錶風格打造的潛水電腦錶具備精準 GPS 定位、明亮的 AMOLED 螢幕及多項專為水陸活動的運動數據,並採用回收海洋塑膠製成,將環保與創新完美融合。 Descent G2 以腕錶風格打造的潛水電腦錶具備精準 GPS 定位、明亮的 AMOLED 螢幕及多項專為水陸活動的運動數據,並採用回收海洋塑膠製成,將環保與創新完美融合。 NT$ 22,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 Descent Mk3 系列 GPS潛水電腦錶 你是個潛水愛好者。你需要一款設計小巧、配備 GPS 的潛水電腦錶以標記你的潛水入水點及出水點 — 還能在你上岸後,作為可日常穿戴的智慧手錶。 NT$ 53,990 Descent G1 系列 GPS潛水電腦錶 身為一位潛水者,你在乎海洋環境的保護,同時想要一款操作簡單、可太陽能充電、友善環境,且風格適合日常穿搭的智慧手錶的潛水電腦錶。 Descent G1 Solar 是一款堅固耐用的太陽能充電潛水電腦錶,同時也是一支智慧手錶,搭載多種潛水模式,另外還具備智慧通知、全天候健康監測等功能。無論你從事休閒、技術水肺潛水還是自由潛水,這款堅固耐用的潛水電腦錶皆能滿足你的需求。Descent G1 Solar 更搭載了藍寶石太陽能鏡面,給你源源不絕的電力。 NT$ 19,990 quatix 7 Pro 航海商務智慧手錶 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 NT$ 32,990 SALE vívoactive 5 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,vívoactive 5 不只是支智慧手錶 — 而是能支持你達成任何目標的個人腕上教練。 vivoactive 5 GPS 智慧手錶搭載先進的 AMOLED 觸控螢幕,提供最長達 11 天的持久電池壽命。透過此智慧手錶,您可以獲得豐富的健康資訊,同時內建多款運動應用程式和專業運動課程,讓您全面掌握健康狀況,享受高效運動體驗。 NT$ 6,990 NT$ 9,990 Venu 3 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,還可撥打電話及發送簡訊,Venu 3不只是支智慧手錶-而是能時刻陪伴你,支持你達成任何目標的個人腕上教練。 NT$ 14,990 fēnix 7 Pro 系列 全方位戶外進階GPS智慧腕表系列 透過進階訓練功能、全天候健康和保健監測、Power Sapphire 太陽能鏡面提供超過一個月的電池效能,以及強悍耐用的錶殼,征服每一刻 NT$ 29,990 epix Pro 系列 全方位戶外進階GPS智慧腕表系列 藉由進階訓練功能、全天健康及保健監測以及智慧手錶模式下可達 16天的電池效能,征服每一刻。用極美的防刮藍寶石鏡面 AMOLED 螢幕,查看你的所有數據 epix Pro Sapphire 是一款多功能運動手錶,配備藍寶石水晶鏡片、AMOLED 高畫質螢幕、長達 16 天的電池壽命和內建手電筒。 NT$ 32,990 Forerunner 965 系列 GPS 全方位鐵人運動錶 搭載 AMOLED 全彩炫色觸控螢幕,訓練完備程度陪你挺進各種大小賽事 你渴望勝利的榮光。利用 Forerunner 965 搭載的明亮 AMOLED 螢幕和頂級跑步/三鐵功能,精彩訓練,你將能踏上頒獎台。 NT$ 19,990 Venu Sq 2 Music系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 8,990 Venu Sq 2 系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 7,990 SALE Forerunner 955 系列 太陽能高階鐵人運動錶 盡全力訓練、跑出最佳表現,並靠著延長電池效能的 Power Glass 太陽能充電鏡面,輾壓對手 訓練,無止競! 你站上凸台的最佳利器! 戴上Forerunner 955 太陽能高階鐵人運動錶,讓您脫穎而出。 NT$ 15,990 NT$ 19,990 quatix 7 航海GPS智慧錶 quatix 7 藍寶石航海 GPS 智慧腕錶採用明亮的 AMOLED 螢幕,無論你是否在船上,您都可輕鬆獲得所需資訊 無論在水上或陸上,你都嚮往規劃自己的樂園。有了搭配 AMOLED 螢幕的 quatix 7 藍寶石版複合式運動 GPS 智慧腕錶,你都能辦到。 NT$ 31,990 epix 系列 全方位GPS智慧腕錶 超過40種運動模式,全方位支持你想達成的健身目標 Wear epix. Be epic. 用極美的 AMOLED 螢幕、全天候健康與活動監測、智慧功能及內建運動應用程式,滿足所有活動需求,迎戰你的每一天。 NT$ 31,990 fēnix 7 Solar 戶外進階複合式運動GPS腕錶系列 頂級藍寶石太陽能充電鏡面延長電池效能 — 帶給你進階訓練功能、運動應用程式、全天候健康監測,協助你掌握體力的消耗與恢復,以利於最佳表現 fenix 7 Sapphire Solar 是一款搭載防刮太陽能充電鏡面的戶外高階GPS運動腕錶,擁有陽光下可清晰閱讀,穿透反射式高階顯示螢幕 (MIP),採用頂級藍寶石太陽能充電鏡面,陪你上山下海都精彩,為一週七天隨時迎接挑戰而造。 NT$ 28,990 Venu 2 Plus 系列 GPS 智慧腕錶 具備進階健康監測及健身功能,不只傾聽您的健康狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,更可享受在手上撥打及接聽電話的輕鬆便利 Venu 2 Plus具備進階健康監測及健身功能,可傾聽並幫助您掌握自身體能狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,即可享受從手上撥打及接聽電話的輕鬆便利,甚至能呼叫手機的語音助理回覆文字訊息。 NT$ 14,990 Venu 2 系列 GPS 智慧腕錶 活得健康就會活得更好。這款 GPS 智慧腕錶具備進階健康偵測及健身功能,可幫助您更了解體內的狀態 追蹤更多的健康數據,幫助您更了解體內的狀態。利用 25 種以上的內建運動應用程式,探索運動的新樂趣。需要教練指導嗎?訓練動畫就在您的手腕上。下載喜歡的歌曲到您的腕錶上,手機不再永不離身。支援 Garmin Pay 行動支付服務,出門不帶錢包也能輕鬆購物付款。精緻細膩的 AMOLED 螢幕還能有11 天電量?沒錯,又多了兩個愛上這款腕錶的理由。 NT$ 13,990 Descent Mk2 系列 GPS潛水電腦錶 內建多種潛水及運動模式及智慧功能的進階潛水電腦錶,若想擁有氣瓶殘壓監測功能,絕不能錯過搭載獨創SubWave聲納科技的Descent Mk2i 支援多種潛水模式,包含單一及多氣體潛水模式(高氧和多氣體)、儀錶、自由潛水、自由潛水捕獵、密閉循環系統(CCR)。 Descent Mk2 系列內建 ABC 感測器以及水下 3 軸電子羅盤,以助於水下航向指引;並支援水面 GPS,記錄潛水員的潛水出水點與入水點。 在陸地上, Descent Mk2 系列可做為多功能戶外 GPS 運動手錶使用,支援三衛星定位、多種運動模式、腕式心率監控、 Pulse Ox脈搏血氧感測、進階訓練、 Garmin Pay 支付服務、音樂儲存、來電通知及訊息與行事曆提醒等功能。 NT$ 41,990 tactix Delta Solar 太陽能複合式戰術GPS腕錶 支援太陽能充電 藍寶石玻璃鏡面 內建GPS及地圖 電池效能管理 支援太陽能充電,採用藍寶石玻璃鏡面,以軍規標準打造。擁有獨創的戰術功能和地圖、音樂、進階訓練等功能。戰術主題功能包括潛行模式─可關閉位置分享與無線連線功能,以及一鍵即焚刪除所有使用者資料的永久資料刪除功能。提供全天候身體指數監測與生活智慧功能,包含腕式光學心率、智慧通知、Pulse Ox 脈搏血氧感測及Garmin Pay 行動支付等功能。 NT$ 36,990 最多比較 4 項產品 功能比較 清除全部 追蹤、分析與分享你的數據 拜訪 Garmin Connect 下載更多擴充功能 拜訪 Connect IQ 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 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 22:02:03 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 11/21 個網址 2025-10-13 22:02:03 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 2025-10-13 22:02:03 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 的第 1/3 次請求 2025-10-13 22:02: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 0x7013d7d21550>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/544c8ce4aa2c4eacd17898f0ed78aeeb 2025-10-13 22:02: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 0x7013d54dd790>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/544c8ce4aa2c4eacd17898f0ed78aeeb 2025-10-13 22:02: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 0x7013d54ddfd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/544c8ce4aa2c4eacd17898f0ed78aeeb 2025-10-13 22:02:03 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:02:03 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:02:03 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:02:03 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:02:03 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:02: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 22:02:03 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:02:04 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:02:04 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:02: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 22:02:04 - 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 0x599418bc44e3 <unknown> #1 0x5994188f3c76 <unknown> #2 0x59941891cd78 <unknown> #3 0x599418919029 <unknown> #4 0x599418957ccc <unknown> #5 0x59941895747f <unknown> #6 0x59941894ede3 <unknown> #7 0x5994189242dd <unknown> #8 0x59941892534e <unknown> #9 0x599418b843e4 <unknown> #10 0x599418b883d7 <unknown> #11 0x599418b92b20 <unknown> #12 0x599418b89023 <unknown> #13 0x599418b571aa <unknown> #14 0x599418bad6b8 <unknown> #15 0x599418bad847 <unknown> #16 0x599418bbd243 <unknown> #17 0x71d8e1894ac3 <unknown> 2025-10-13 22:02:04 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:02:04 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:02:05 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:02:05 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 2025-10-13 22:02:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 22:02:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:02:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 183.9MB, CPU 0.0% 2025-10-13 22:02:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:02:08 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 2025-10-13 22:02:08 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:02:08 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:02:08 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:02:08 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 2025-10-13 22:02:08 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 11/21 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:02:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:02:10 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:02:10 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:02:10 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:02:18 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 11/21 2025-10-13 22:02:29 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 11/21 2025-10-13 22:02:39 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 11/21 2025-10-13 22:02:41 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 5059 2025-10-13 22:02:42 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 719 2025-10-13 22:02:44 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 719,內容可能已加載完成 2025-10-13 22:02:44 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:02:47 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:02:47 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:02:49 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 11/21 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay (實際 URL: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay) 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 308307 字節 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 9884 字節 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 9761 字節 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 10275 字節,約 1091 個詞,452 行 2025-10-13 22:02:56 - 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 PAY 行動支付搭配悠遊卡,通勤趕時間?只需刷錶,快速通關!悠遊卡手錶給你免帶錢包出門的輕鬆自在,一旦開始就會習慣。 請選擇分類 + 所有智慧穿戴手錶 66 + 戶外運動手錶 28 + 跑步手錶 7 + 越野跑手錶 13 + 室內健身手錶 12 + 複合式 & 三鐵錶 33 + 潛水錶 6 + 游泳錶 42 + 高爾夫手錶 11 + 女性手錶 28 + 時尚手錶 17 + 健康手錶 18 + 支援心電圖App手錶 14 + 行動支付 & 悠遊卡手錶 51 + 行動支付 & 一卡通手錶 2 + 音樂手錶 30 + 航海錶 3 + 航空錶 1 + MARQ 工藝腕錶 9 功能比較 NEW Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Venu 4 是一款小錶徑的健康與健身智慧手錶,搭載明亮 AMOLED 螢幕、24/7 全天候健康追蹤、多頻多衛星定位、LED 手電筒,以及長達 10 天的電池續航。 NT$ 16,990 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 NEW quatix 8 高效能航海智慧手錶 頂級航海智慧手錶配備 AMOLED 螢幕、航圖機控制與內建手電筒。 quatix 8 航海智慧手錶配備明亮的 1.4 吋 AMOLED 螢幕和 LED 手電筒,讓你無論在船上或下了船,都能盡情享受它提供的功能。 NT$ 38,990 為什麼選Garmin手錶? 立即看心得 >> Venu X1 全方位 GPS 智慧腕錶 俐落輕量、配備明亮 2 吋 AMOLED 螢幕並搭載進階健康及健身功能的 GPS 智慧腕錶。 Venu X1劃時代的極致纖薄設計,結合2吋AMOLED高清螢幕與藍寶石鏡面,兼具質感與耐用性。整合實用功能與先進健康監測,從科學化訓練、恢復建議到戶外探索,全方位支援每一步挑戰,助你突破極限、超越自我。 NT$ 23,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 vívoactive 6 系列 GPS 智慧腕錶 這款健康與健身 GPS 智慧手錶配備 AMOLED 螢幕、健身功能、基本健康追蹤和智慧功能。 vívoactive 6 智慧手錶 AMOLED 螢幕亮度再升級,電池續航力最長可達 11 天。提供全天候健康追蹤及豐富運動健身功能,隨時應援一切所需。 NT$ 9,990 fēnix E 全方位戶外進階GPS智慧腕錶 你是個想要突破自我極限的專業運動員/冒險玩家,想擁有一款提供聚焦式肌力訓練、地形圖等功能的高效能 GPS 智慧手錶。fēnix E 正符合你的需要。 戴上強大的 fēnix E 複合式運動 GPS 智慧手錶,迎接你最艱鉅的運動或戶外挑戰。使用全天健康與保健監測、動態往返路線規劃等必備功能,增進你的體力及表現。 NT$ 26,990 tactix 8 – AMOLED Edition 全方位進階軍用戰術錶 你想為野外任務做好準備。你想要一支搭載調適型 AMOLED 螢幕、戰術功能、內建手電筒、預載 TOPO 地圖等功能的專業 GPS 智慧手錶。 tactix 8 是一款具備AMOLED螢幕、鈦金屬錶圈、內建多色手電筒,並在智慧手錶模式下擁有最長29天電池續航的戰術智慧手錶。 NT$ 46,990 Descent G2 GPS潛水電腦錶 以腕錶風格打造的潛水電腦錶具備精準 GPS 定位、明亮的 AMOLED 螢幕及多項專為水陸活動的運動數據,並採用回收海洋塑膠製成,將環保與創新完美融合。 Descent G2 以腕錶風格打造的潛水電腦錶具備精準 GPS 定位、明亮的 AMOLED 螢幕及多項專為水陸活動的運動數據,並採用回收海洋塑膠製成,將環保與創新完美融合。 NT$ 22,990 Instinct E 系列 本我系列 GPS 智慧腕錶 一款堅固耐用的智慧運動手錶,支援全天候健康監測、智慧通知,智慧模式續航力可達14天,滿足各種運動需求 NT$ 9,990 MARQ 探險者 (Gen 2) - 大馬士革鋼典藏版 智能工藝腕錶 超越自我,登峰造極。這款現代頂級工藝智慧腕錶,搭配高畫質 AMOLED 觸控螢幕,由130層碳纖維形塑熔合,不斷挑戰洗鍊卓越之境,創造每只腕錶獨一無二的面貌。 MARQ Athlete (Gen 2) 是一款專為運動員設計的現代工藝腕錶,搭載 AMOLED 螢幕、高感度觸控式螢幕、五級鈦金屬錶身、HRV 狀態監測及體力追蹤。 NT$ 109,900 Lily 2 活力版系列 智慧腕錶 LILY了解你-關注潮流、愛好運動。它擁有超越智慧錶的珠寶配飾外型,全新搭載 GPS。 NT$ 9,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 限量販售 Approach S70 系列 高爾夫GPS腕錶 Approach S70,進階高爾夫球 GPS 腕錶內建你在球場內外提升球技所需的工具與分析數據 Approach S70 是一款高級 GPS 高爾夫手錶,擁有AMOLED超亮觸控螢幕顯示器和預載超過 43,000 個球場。此外,它提供全天候健康監測,根據個人表現建議合適的球桿,並具備 47 毫米的錶殼尺寸。 NT$ 23,990 Descent Mk3 系列 GPS潛水電腦錶 你是個潛水愛好者。你需要一款設計小巧、配備 GPS 的潛水電腦錶以標記你的潛水入水點及出水點 — 還能在你上岸後,作為可日常穿戴的智慧手錶。 NT$ 53,990 Descent G1 系列 GPS潛水電腦錶 身為一位潛水者,你在乎海洋環境的保護,同時想要一款操作簡單、可太陽能充電、友善環境,且風格適合日常穿搭的智慧手錶的潛水電腦錶。 Descent G1 Solar 是一款堅固耐用的太陽能充電潛水電腦錶,同時也是一支智慧手錶,搭載多種潛水模式,另外還具備智慧通知、全天候健康監測等功能。無論你從事休閒、技術水肺潛水還是自由潛水,這款堅固耐用的潛水電腦錶皆能滿足你的需求。Descent G1 Solar 更搭載了藍寶石太陽能鏡面,給你源源不絕的電力。 NT$ 19,990 quatix 7 Pro 航海商務智慧手錶 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 NT$ 32,990 MARQ 指揮官 – 碳纖特仕版 智能工藝腕錶 挑戰極限,無所畏懼。這款現代頂級工藝智慧腕錶,搭配高畫質 AMOLED 觸控螢幕,由130層碳纖維形塑熔合,不斷挑戰洗鍊卓越之境,創造每只腕錶獨一無二的面貌。 NT$ 109,900 MARQ 運動家 – 碳纖特仕版 智能工藝腕錶 超越自我,登峰造極。這款現代頂級工藝智慧腕錶,搭配高畫質 AMOLED 觸控螢幕,由130層碳纖維形塑熔合,不斷挑戰洗鍊卓越之境,創造每只腕錶獨一無二的面貌。 MARQ Athlete (Gen 2) 是一款專為運動員設計的現代工藝腕錶,搭載 AMOLED 螢幕、高感度觸控式螢幕、五級鈦金屬錶身、HRV 狀態監測及體力追蹤。 NT$ 99,900 MARQ 高球手 – 碳纖特仕版 智能工藝腕錶 追求卓越,完美攻嶺。這款現代頂級工藝智慧腕錶,搭配高畫質 AMOLED 觸控螢幕,由130層碳纖維形塑熔合,不斷挑戰洗鍊卓越之境,創造每只腕錶獨一無二的面貌。 MARQ Athlete (Gen 2) 是一款專為運動員設計的現代工藝腕錶,搭載 AMOLED 螢幕、高感度觸控式螢幕、五級鈦金屬錶身、HRV 狀態監測及體力追蹤。 NT$ 109,900 SALE vívoactive 5 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,vívoactive 5 不只是支智慧手錶 — 而是能支持你達成任何目標的個人腕上教練。 vivoactive 5 GPS 智慧手錶搭載先進的 AMOLED 觸控螢幕,提供最長達 11 天的持久電池壽命。透過此智慧手錶,您可以獲得豐富的健康資訊,同時內建多款運動應用程式和專業運動課程,讓您全面掌握健康狀況,享受高效運動體驗。 NT$ 6,990 NT$ 9,990 Venu 3 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,還可撥打電話及發送簡訊,Venu 3不只是支智慧手錶-而是能時刻陪伴你,支持你達成任何目標的個人腕上教練。 NT$ 14,990 fēnix 7 Pro 系列 全方位戶外進階GPS智慧腕表系列 透過進階訓練功能、全天候健康和保健監測、Power Sapphire 太陽能鏡面提供超過一個月的電池效能,以及強悍耐用的錶殼,征服每一刻 NT$ 29,990 epix Pro 系列 全方位戶外進階GPS智慧腕表系列 藉由進階訓練功能、全天健康及保健監測以及智慧手錶模式下可達 16天的電池效能,征服每一刻。用極美的防刮藍寶石鏡面 AMOLED 螢幕,查看你的所有數據 epix Pro Sapphire 是一款多功能運動手錶,配備藍寶石水晶鏡片、AMOLED 高畫質螢幕、長達 16 天的電池壽命和內建手電筒。 NT$ 32,990 SALE Instinct 2 Solar 系列 本我系列太陽能 GPS 智慧腕錶 Instinct 2 Solar 是一款堅固耐用的太陽能充電 GPS 智慧腕錶,採用大膽配色,搭載智慧通知、全天候健康監測、多衛星系統支援及更多功能 無論你做什麼,用強悍的 Instinct 2X Solar 智慧手錶掌控全局。利用預載的活動模式、健康指標、LED 手電筒及太陽能充電鏡面等功能,探索人生中的無限可能。 NT$ 11,190 NT$ 15,990 Forerunner 965 系列 GPS 全方位鐵人運動錶 搭載 AMOLED 全彩炫色觸控螢幕,訓練完備程度陪你挺進各種大小賽事 你渴望勝利的榮光。利用 Forerunner 965 搭載的明亮 AMOLED 螢幕和頂級跑步/三鐵功能,精彩訓練,你將能踏上頒獎台。 NT$ 19,990 MARQ 高球手 (Gen 2) 智能工藝腕錶 是一款專為高爾夫愛好者設計的現代工藝腕錶,搭載觸控螢幕、傳統按鍵、球道攻略提示及 43,000 幅預載球道地圖 MARQ Golfer (Gen 2) 是一款專為高爾夫愛好者設計的現代工藝腕錶,搭載觸控螢幕、傳統按鍵、球道攻略提示及 43,000 幅預載球道地圖。 NT$ 78,000 SALE Instinct Crossover 系列 運動指針GPS智慧錶 Instinct Crossover 運動指針GPS智慧錶,是首度搭載REVODRIVE耐衝擊自動校準指針科技,講究強悍精準的軍規智慧錶 Instinct Crossover運動指針GPS智慧錶,是首度搭載REVODRIVE耐衝擊自動校準指針科技,講究強悍精準的軍規智慧錶。 NT$ 8,495 NT$ 16,990 Venu Sq 2 Music系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 8,990 Venu Sq 2 系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 7,990 MARQ 飛行員 (Gen 2) 智能工藝腕錶 是一款專為飛行員設計的現代工藝腕錶,搭載 AMOLED 螢幕、觸控面板、五級鈦金屬錶身及緊急導航功能 MARQ Aviator (Gen 2) 是一款專為飛行員設計的現代工藝腕錶,搭載 AMOLED 螢幕、觸控面板、五級鈦金屬錶身及緊急導航功能。 NT$ 81,000 MARQ 探險者 (Gen 2) 智能工藝腕錶 是一款專為戶外探險設計的現代工藝腕錶,搭載 AMOLED 螢幕、五級鈦金屬錶身、混合材質皮革錶帶及多頻 GNSS 技術 MARQ Adventurer (Gen 2) 是一款專為戶外探險設計的現代工藝腕錶,搭載 AMOLED 螢幕、五級鈦金屬錶身、混合材質皮革錶帶及多頻 GNSS 技術。 NT$ 71,000 MARQ 運動家 (Gen 2) 智能工藝腕錶 是一款專為運動員設計的現代工藝腕錶,搭載 AMOLED 螢幕、高感度觸控式螢幕、五級鈦金屬錶身、HRV 狀態監測及體力追蹤 MARQ Athlete (Gen 2) 是一款專為運動員設計的現代工藝腕錶,搭載 AMOLED 螢幕、高感度觸控式螢幕、五級鈦金屬錶身、HRV 狀態監測及體力追蹤。 NT$ 64,000 MARQ 航海家 (Gen 2) 智能工藝腕錶 是一款專為航海愛好者打造的現代工藝腕錶,搭載 AMOLED 螢幕、五級鈦金屬錶鍊及帆船賽計時器 MARQ Captain (Gen 2) 是一款專為航海愛好者打造的現代工藝腕錶,搭載 AMOLED 螢幕、五級鈦金屬錶鍊及帆船賽計時器。 NT$ 74,000 SALE Forerunner 955 系列 太陽能高階鐵人運動錶 盡全力訓練、跑出最佳表現,並靠著延長電池效能的 Power Glass 太陽能充電鏡面,輾壓對手 訓練,無止競! 你站上凸台的最佳利器! 戴上Forerunner 955 太陽能高階鐵人運動錶,讓您脫穎而出。 NT$ 15,990 NT$ 19,990 quatix 7 航海GPS智慧錶 quatix 7 藍寶石航海 GPS 智慧腕錶採用明亮的 AMOLED 螢幕,無論你是否在船上,您都可輕鬆獲得所需資訊 無論在水上或陸上,你都嚮往規劃自己的樂園。有了搭配 AMOLED 螢幕的 quatix 7 藍寶石版複合式運動 GPS 智慧腕錶,你都能辦到。 NT$ 31,990 epix 系列 全方位GPS智慧腕錶 超過40種運動模式,全方位支持你想達成的健身目標 Wear epix. Be epic. 用極美的 AMOLED 螢幕、全天候健康與活動監測、智慧功能及內建運動應用程式,滿足所有活動需求,迎戰你的每一天。 NT$ 31,990 fēnix 7 Solar 戶外進階複合式運動GPS腕錶系列 頂級藍寶石太陽能充電鏡面延長電池效能 — 帶給你進階訓練功能、運動應用程式、全天候健康監測,協助你掌握體力的消耗與恢復,以利於最佳表現 fenix 7 Sapphire Solar 是一款搭載防刮太陽能充電鏡面的戶外高階GPS運動腕錶,擁有陽光下可清晰閱讀,穿透反射式高階顯示螢幕 (MIP),採用頂級藍寶石太陽能充電鏡面,陪你上山下海都精彩,為一週七天隨時迎接挑戰而造。 NT$ 28,990 Venu 2 Plus 系列 GPS 智慧腕錶 具備進階健康監測及健身功能,不只傾聽您的健康狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,更可享受在手上撥打及接聽電話的輕鬆便利 Venu 2 Plus具備進階健康監測及健身功能,可傾聽並幫助您掌握自身體能狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,即可享受從手上撥打及接聽電話的輕鬆便利,甚至能呼叫手機的語音助理回覆文字訊息。 NT$ 14,990 Venu 2 系列 GPS 智慧腕錶 活得健康就會活得更好。這款 GPS 智慧腕錶具備進階健康偵測及健身功能,可幫助您更了解體內的狀態 追蹤更多的健康數據,幫助您更了解體內的狀態。利用 25 種以上的內建運動應用程式,探索運動的新樂趣。需要教練指導嗎?訓練動畫就在您的手腕上。下載喜歡的歌曲到您的腕錶上,手機不再永不離身。支援 Garmin Pay 行動支付服務,出門不帶錢包也能輕鬆購物付款。精緻細膩的 AMOLED 螢幕還能有11 天電量?沒錯,又多了兩個愛上這款腕錶的理由。 NT$ 13,990 tactix Delta Solar 太陽能複合式戰術GPS腕錶 支援太陽能充電 藍寶石玻璃鏡面 內建GPS及地圖 電池效能管理 支援太陽能充電,採用藍寶石玻璃鏡面,以軍規標準打造。擁有獨創的戰術功能和地圖、音樂、進階訓練等功能。戰術主題功能包括潛行模式─可關閉位置分享與無線連線功能,以及一鍵即焚刪除所有使用者資料的永久資料刪除功能。提供全天候身體指數監測與生活智慧功能,包含腕式光學心率、智慧通知、Pulse Ox 脈搏血氧感測及Garmin Pay 行動支付等功能。 NT$ 36,990 vívomove Luxe 系列 指針智慧腕錶 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒。只需輕滑錶面,即刻喚醒隱藏式觸控螢幕。vívomove Style與vívomove Luxe更具備金屬材質機身及全彩AMOLED螢幕,多種樣式供您選擇。多樣身心健康功能則有助於您追蹤壓力狀態及目前的身體能量指數。需要運動健身時,連上智慧型手機的GPS即可追蹤戶外步行及跑步。充電一次,電池效能長達4天,手錶模式,則可達一星期,少了每天充電的麻煩,更多了生活上的便利。 NT$ 17,990 vívomove Style 指針智慧腕錶 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒。只需輕滑錶面,即刻喚醒隱藏式觸控螢幕。vívomove Style與vívomove Luxe更具備金屬材質機身及全彩AMOLED螢幕,多種樣式供您選擇。多樣身心健康功能則有助於您追蹤壓力狀態及目前的身體能量指數。需要運動健身時,連上智慧型手機的GPS即可追蹤戶外步行及跑步。充電一次,電池效能長達4天,手錶模式,則可達一星期,少了每天充電的麻煩,更多了生活上的便利。 NT$ 11,990 最多比較 4 項產品 功能比較 清除全部 追蹤、分析與分享你的數據 拜訪 Garmin Connect 下載更多擴充功能 拜訪 Connect IQ 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 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 22:02:56 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 12/21 個網址 2025-10-13 22:02:56 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/onthewater/?cat=sailing 2025-10-13 22:02:56 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/onthewater/?cat=sailing, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/onthewater/?cat=sailing 的第 1/3 次請求 2025-10-13 22:02:56 - 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 0x7013d6da0250>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/86cb315b6fece6331cb3aea2eb231def 2025-10-13 22:02:56 - 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 0x7013d73289d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/86cb315b6fece6331cb3aea2eb231def 2025-10-13 22:02:56 - 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 0x7013d50b8b10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/86cb315b6fece6331cb3aea2eb231def 2025-10-13 22:02:56 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:02:56 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:02:56 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:02:56 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:02:57 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:02:57 - 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 22:02:57 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:02:57 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:02:57 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:02:57 - 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 22:02:57 - 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 0x56fea6f764e3 <unknown> #1 0x56fea6ca5c76 <unknown> #2 0x56fea6cced78 <unknown> #3 0x56fea6ccb029 <unknown> #4 0x56fea6d09ccc <unknown> #5 0x56fea6d0947f <unknown> #6 0x56fea6d00de3 <unknown> #7 0x56fea6cd62dd <unknown> #8 0x56fea6cd734e <unknown> #9 0x56fea6f363e4 <unknown> #10 0x56fea6f3a3d7 <unknown> #11 0x56fea6f44b20 <unknown> #12 0x56fea6f3b023 <unknown> #13 0x56fea6f091aa <unknown> #14 0x56fea6f5f6b8 <unknown> #15 0x56fea6f5f847 <unknown> #16 0x56fea6f6f243 <unknown> #17 0x7655fa494ac3 <unknown> 2025-10-13 22:02:57 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:02:57 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:02:58 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:02:58 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/onthewater/?cat=sailing 2025-10-13 22:02:59 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:03:09 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:03:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:03:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:03:17 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=sailing 2025-10-13 22:03:17 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:03:17 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:03:17 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:03:17 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=sailing 2025-10-13 22:03:19 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:03:19 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:03:19 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:03:19 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:03:29 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:03:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 22:03:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:03:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 186.0MB, CPU 0.0% 2025-10-13 22:03:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:03:39 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:03:49 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 1344 2025-10-13 22:03:50 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:03:50 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 430 2025-10-13 22:03:52 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 430,內容可能已加載完成 2025-10-13 22:03:52 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:03:55 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:03:55 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:04:00 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 12/21 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/onthewater/?cat=sailing (實際 URL: https://www.garmin.com.tw/products/onthewater/?cat=sailing) 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 250553 字節 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 2284 字節 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 2130 字節 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 2675 字節,約 397 個詞,162 行 2025-10-13 22:04:05 - 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 航圖機、測風儀、自動導航等裝置,會助你揚起冒險精神的風帆。 請選擇分類 + 漁業用設備 17 + 航圖機 & 魚探機 29 + 聲納模組 6 + 探頭 90 + 即時動態聲納 8 + 風速儀 & 顯示儀器 20 + 無線電通訊 10 + 天線與感測器 8 + 自動舵 25 + Fusion 航海娛樂系統 22 + 數位開關 2 + 多功能網路型產品 7 + 雷達 7 + 帆船產品 25 + 手持與穿戴式裝置 5 + 電動船外機 4 + 攝影機 3 + 應用程式 2 quatix 7 Pro 航海商務智慧手錶 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 你想繪製你的水上及陸上天堂。quatix 7 Pro 頂級 GPS 智慧手錶搭載 OLED 螢幕及 LED 手電筒,讓你如願以償。 NT$ 32,990 GPSMAP 9000 Series 一款具備 4K 解析度及先進技術的多功能航圖機。採用玻璃鏡面、頂級設計和用料,滿足您的需求。 GMR 18 HD3 身為船長,您需要一款經濟實惠、省空間的磁控管雷達,能夠在低能見度的環境下可靠它偵測來往目標。Garmin HD3 系列除了能滿足您所有需求,還具有多種功能。 GMR xHD3 Radar 系列 您是一位希望擁有可靠、高清晰度的磁控管雷達的船主,希望您的雷達具有追蹤遙遠天氣、障礙物和往來船隻的功能。Garmin GMR xHD3系列能滿足您的需求。 Fusion Apollo MS-WB675 Marine Hideaway Stereo 是一款設計小巧的隱藏式音響,能帶來卓越音質,4 個獨立聆聽區域,並能透過 Apple AirPlay® 2 串流音樂 Fusion MS-WB675 是一款設計小巧的隱藏式音響,能帶來卓越音質,4 個獨立聆聽區域,並能透過 Apple AirPlay® 2 串流音樂。 Fusion Signature Series 3i Marine Coaxial Speakers Signature Series 3i 重低音揚聲器透過頂級的低頻表現重現音樂的震撼效果,提升您的聆聽體驗 Fusion RA70 系列船用音響 Fusion 的 RA70 系列包括三個 DIN 尺寸的船用音響,設計宗旨為以超值的價格提供優質的水上音訊娛樂體驗 Fusion RA210 船用音響 Fusion 的 MS-RA210 小巧型船用音響採用現代設計美學與內建 DSP 技術,可提供最佳音訊娛樂體驗 Fusion Apollo 系列船用音響 全球首款配備 AirPlay® 軟體功能和內建 Wi-Fi® 連線功能的觸控螢幕式船用音響,以革命性的技術及創新的設計重新定義了音訊的卓越程度 Fusion Apollo RA770 是一款船用娛樂系統,並配備全球首款具 AirPlay® 2 軟體功能和內建 Wi-Fi® 連線的觸控螢幕式船用音響。 Fusion MS-RA60 船用音響 MS-RA60 是一款經濟型船用音響,具備現代美學、多區域技術與先進的連線選項 MS-RA60 是一款經濟型船用音響,具備現代美學、多區域技術與先進的連線選項。 Garmin Boat Switch 使用數位開關功能,讓您直接從 GPSMAP 或 ECHOMAP 航儀操作船上電子開關,享受智慧型船隻體驗 gWind Wireless 2 GPSMAP x3 Series 流線型設計、強大處理能力及進階的 IPS 顯示螢幕,這款先進的 7”、9”、12” 或 16” 航圖機可以無縫整合至您的 Garmin 航海系統。 GNX Wireless Wind Pack Airmar DST 810 Smart Transducer GPSMAP 8400 Series VHF 215 AIS Marine Radio AIS™ 800 Panoptix™ PS51-TH GMI™ 20 Marine Instrument gWind™ Transducer GNX™ Wind Marine Instrument GNX™ 120 7-inch Large Format Marine Instrument GNX™ 130 10-inch Large Format Marine Instrument GPS 73 最多比較 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 22:04:05 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 13/21 個網址 2025-10-13 22:04:05 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 2025-10-13 22:04:05 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 的第 1/3 次請求 2025-10-13 22:04:05 - 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 0x7013d50ba450>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/e9902732909b85bfd0ff256ad2491a9d 2025-10-13 22:04:05 - 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 0x7013d50ea810>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/e9902732909b85bfd0ff256ad2491a9d 2025-10-13 22:04:05 - 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 0x7013d50eb810>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/e9902732909b85bfd0ff256ad2491a9d 2025-10-13 22:04:05 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:04:05 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:04:05 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:04:05 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:04:05 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:04:05 - 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 22:04:05 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:04:05 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:04:06 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:04:06 - 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 22:04:06 - 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 0x5676791574e3 <unknown> #1 0x567678e86c76 <unknown> #2 0x567678eafd78 <unknown> #3 0x567678eac029 <unknown> #4 0x567678eeaccc <unknown> #5 0x567678eea47f <unknown> #6 0x567678ee1de3 <unknown> #7 0x567678eb72dd <unknown> #8 0x567678eb834e <unknown> #9 0x5676791173e4 <unknown> #10 0x56767911b3d7 <unknown> #11 0x567679125b20 <unknown> #12 0x56767911c023 <unknown> #13 0x5676790ea1aa <unknown> #14 0x5676791406b8 <unknown> #15 0x567679140847 <unknown> #16 0x567679150243 <unknown> #17 0x73e040494ac3 <unknown> 2025-10-13 22:04:06 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:04:06 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:04:06 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:04:06 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 2025-10-13 22:04:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:04:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:04:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:04:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:04:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:04:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:04:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:04:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:04:10 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 13/21 2025-10-13 22:04:10 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 2025-10-13 22:04:10 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:04:10 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:04:10 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:04:10 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 2025-10-13 22:04:12 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:04:12 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:04:12 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:04:20 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 13/21 2025-10-13 22:04:30 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 13/21 2025-10-13 22:04:40 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 13/21 2025-10-13 22:04:42 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 378 2025-10-13 22:04:43 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 382 2025-10-13 22:04:45 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 382,內容可能已加載完成 2025-10-13 22:04:45 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:04:49 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:04:49 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:04:50 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 13/21 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors (實際 URL: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors) 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 214494 字節 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1275 字節 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 1013 字節 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1666 字節,約 246 個詞,122 行 2025-10-13 22:04:58 - 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 健康與心率追蹤 想要更全面、更精準地了解自己的健康狀態?用智慧體脂計和心率追蹤穿戴裝置,輕鬆打造健康生態系。即時追蹤心率、體重與多項健康數據,讓你一站式管理健康,隨時掌握身體狀況。 請選擇分類 + 跑步 11 + 自行車 17 + Tacx 室內訓練台 9 + 複合式 & 三鐵 37 + 潛水 9 + 游泳 42 + 高爾夫 11 + 健康與心率追蹤 5 + 航空錶 1 Index Sleep Monitor 健康睡眠臂帶 零感睡眠穿戴,掌握健康與修復關鍵!Index 健康睡眠臂帶,助你掌握高品質好眠。 Index 健康睡眠監測臂帶是一款舒適的睡眠追蹤穿戴裝置,提供睡眠品質狀態分析與恢復指標,電池效能長達 7 晚,並能將數據同步到 Garmin Connect app。 NT$ 5,990 NEW HRM 200 心率感測器 HRM 200 心率感測器精準地捕捉即時心率及 HRV 數據;提供兩種尺寸 HRM 200 心率感測器傳輸即時心率及 HRV 數據,電池效能最多可達 1 年。搭配輕便可機洗的束帶。 NT$ 2,940 NEW HRM 600 心率感測器 HRM 600 心率感測器精準地捕捉即時心率及 HRV 數據;提供兩種尺寸 HRM 600是一款心率感測器,具備即時心率與心率變異(HRV)數據、跑步動態分析、獨立活動記錄功能,電池續航最長可達 2 個月。 NT$ 5,880 HRM-Fit 女性專用心率感測器 專為女性設計,不挑身型、高支撐度的貼合夾扣設計,能消除傳統心率帶的勒悶不適。陪你放開心、儘管動,持續準確記錄! 專為女性設計,不挑身型、高支撐度的貼合夾扣設計,能消除傳統心率帶的勒悶不適。陪你放開心、儘管動,持續準確記錄! NT$ 4,990 Index S2 系列 Wi-Fi智慧多功能體脂計 智慧體脂計是一款連接 Wi-Fi 的體脂計,可透過易於閱讀的彩色顯示螢幕更全面地了解您的健康狀況 Garmin Index S2 智慧體脂計是一款連接 Wi-Fi 的體脂計,可透過易於閱讀的彩色顯示螢幕更全面地了解您的健康狀況。 NT$ 4,990 最多比較 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 22:04:58 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 14/21 個網址 2025-10-13 22:04:58 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/intosports/?cat=cycling 2025-10-13 22:04:58 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/intosports/?cat=cycling, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/intosports/?cat=cycling 的第 1/3 次請求 2025-10-13 22:04:58 - 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 0x7013d6e13c50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f8fe49e444d500ac8026e10cb3a8e827 2025-10-13 22:04:58 - 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 0x7013d5365bd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f8fe49e444d500ac8026e10cb3a8e827 2025-10-13 22:04:58 - 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 0x7013d5366fd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f8fe49e444d500ac8026e10cb3a8e827 2025-10-13 22:04:58 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:04:58 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:04:58 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:04:58 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:04:58 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:04:58 - 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 22:04:58 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:04:58 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:04:59 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:04:59 - 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 22:04:59 - 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 0x57740c2c54e3 <unknown> #1 0x57740bff4c76 <unknown> #2 0x57740c01dd78 <unknown> #3 0x57740c01a029 <unknown> #4 0x57740c058ccc <unknown> #5 0x57740c05847f <unknown> #6 0x57740c04fde3 <unknown> #7 0x57740c0252dd <unknown> #8 0x57740c02634e <unknown> #9 0x57740c2853e4 <unknown> #10 0x57740c2893d7 <unknown> #11 0x57740c293b20 <unknown> #12 0x57740c28a023 <unknown> #13 0x57740c2581aa <unknown> #14 0x57740c2ae6b8 <unknown> #15 0x57740c2ae847 <unknown> #16 0x57740c2be243 <unknown> #17 0x7871b3894ac3 <unknown> 2025-10-13 22:04:59 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:04:59 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:04:59 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:04:59 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/intosports/?cat=cycling 2025-10-13 22:05:00 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 14/21 2025-10-13 22:05:03 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/intosports/?cat=cycling 2025-10-13 22:05:03 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:05:03 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:05:03 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:05:03 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/intosports/?cat=cycling 2025-10-13 22:05:05 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:05:05 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:05:05 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:05:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 22:05:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:05:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 186.5MB, CPU 0.0% 2025-10-13 22:05:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.05 秒,結果: 0 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:05:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:05:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:05:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:05:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:05:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:05:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:05:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:05:11 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 14/21 2025-10-13 22:05:21 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 14/21 2025-10-13 22:05:23 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 .container,內容長度: 67 2025-10-13 22:05:24 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 705 2025-10-13 22:05:26 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 705,內容可能已加載完成 2025-10-13 22:05:26 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:05:29 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:05:29 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:05:31 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 14/21 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/intosports/?cat=cycling (實際 URL: https://www.garmin.com.tw/products/intosports/?cat=cycling) 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 273517 字節 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 1201 字節 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 5308 字節 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 5063 字節 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 5699 字節,約 724 個詞,463 行 2025-10-13 22:05:39 - 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 自行車 自行車 騎車,是你探索世界的獨家視角。快速精準定位搭配全天候數據,讓車友們無論通勤、團騎或競技,都能不斷提升表現,享受旅程,安心前行。 Edge自行車錶 騎車必備,隨時掌握騎行狀況 看哪一款適合我 Rally踏板式功率計 適合有訓練目標,需精準功率達到最佳表現的車友 看哪一款適合我 Varia前燈行車記錄器 即時自動記錄,行車安全更升級 看哪一款適合我 Varia後視雷達 適合需要即時警示後方來車,以提升騎行安全的車友 看哪一款適合我 Tacx室內訓練台 適合在家踩台、高效訓練的車友 看訓練台怎麼選 車錶 智慧手錶 功率計 Edge車錶+Rally踏板式功率計+智慧手錶 全方位整合訓練和健康數據,搭配精準功率,貫徹高效科學化訓練 了解更多 車錶 智慧前燈 後視雷達 Edge車錶+Varia智慧前燈/後視雷達 Edge車錶開啟時自動開啟頭燈和後視雷達,前後無死角守護行車安全 了解更多 Edge自行車錶 Edge自行車錶提供精準定位、導航及騎乘數據(距離、速度、高度、坡度),搭配功率計與感測器,即可依個人數據做配速策略與體力分配,避免過早疲勞或體力不支。 哪一款適合我? 您可以從 操控方式(觸控或非觸控) 、 大小與重量 以及 續航力 三個面向來進行選擇 Edge 1050 旗艦觸控式 GPS自行車錶 NT$22,990 了解更多 Edge 1040 Solar 太陽能進階 GPS 自行車錶 NT$22,990 了解更多 Edge 850 GPS自行車錶 NT$16,990 了解更多 Edge 550 GPS自行車錶 NT$13,990 了解更多 Edge 130 Plus 自行車衛星導航 NT$5,990 了解更多 Edge MTB 登山車GPS自行車錶 NT$12,990 了解更多 觸控螢幕 超高畫質3.5"彩色液晶螢幕 3.5"彩色螢幕 2.7"彩色液晶螢幕 - 2.7"彩色液晶螢幕 - 1.8"黑白螢幕 - 2.1"彩色螢幕 重量 161g 133g 113g 110g 33g 58g 續航力 最長可達20小時 最長可達45小時 最長可達12小時 最長可達12小時 最長可達12小時 最長可達14小時 太陽能充電 - - - - - 內建喇叭,提供語音導航提示 / 內建車鈴,支援 Di2 按鈕控制 - - - - 行動支付 (Garmin Pay、悠遊卡) - - - - 在車錶上規劃路線、搜尋地點 - - - - 內建自行車地圖 - - 支援 Multi-band GNSS 多頻多衛星定位系統,提供卓越的定位精準度及最佳化的電池效能 - 訓練狀態、訓練效果 - - 即時天氣圖層 幫助在騎乘中做出更妥善的決定 - - - - GroupRide 團騎模式 透過訊息、即時位置和事故偵測警示,與車隊隨時保持聯繫 - 團騎數據比較 查看騎乘中爬坡排行榜以及車友的即時數據 - - - - 智慧補給警示 根據當下體能、路線特性、氣溫及濕度條件提供補給指引 - - - - 齒比分析 與電子變速系統配對後即可在騎乘後檢視每檔齒輪比的時間 - - - - ENDURO 和下坡車騎乘模式 - - 5 HZ GPS 紀錄,可更詳細檢視騎乘路徑 - - 設定計時閘以追蹤分段時間 - - 進階 Forksight 模式沿途接收路線指引 - - Rally踏板式功率計 Rally功率計讓您掌握每次踩踏的功率、迴轉數、姿勢穩定性與左右腳平衡,並分析坐姿與站姿的功率輸出差異,協助您制定合理的配速策略與體力分配,以達成目標。 建議搭配 心率感測器 或 智慧手錶 以透過心率區間進行提升有氧耐力、燃脂等不同強度區間的訓練。 哪一款適合我? Rally XC210 自行車專用雙感應功率計 NT$37,990 了解更多 Rally XC110 自行車專用單感應功率計 NT$22,990 了解更多 Rally RS210 自行車專用雙感應功率計 NT$34,990 了解更多 Rally RS110 自行車專用單感應功率計 NT$20,990 了解更多 Rally RK210 自行車專用雙感應功率計 NT$34,990 了解更多 Rally RK110 自行車專用單感應功率計 NT$20,990 了解更多 卡踏系統 SHIMANO SPD系統 SHIMANO SPD-SL系統 LOOK KEO 系統 雙邊功率 雙邊功率可提供您更多騎乘數據:左右腳平衡、坐姿/站姿騎乘時間、踩踏施力偏移、功率分布 - - - 重量 436g 444g 312g 320g 312g 320g 踏板材質 全金屬踏板 碳纖維基底 碳纖維基底 充電式(免拆卸) Varia 智慧前燈 Varia智慧前燈具有多種燈光模式,還能根據您的速度及光線條件自動調整亮度。還能使用Edge車錶開啟、關閉照明及亮度控制。 哪一款適合我? Varia Vue 智慧前燈行車記錄器 NT$17,990 了解更多 Varia™ UT800 自行車智慧車燈 NT$4,990 了解更多 內建 4K 攝影機 - 續航力 1080p30錄影+強光 1.5 小時 1080p30錄影+中度光 2.5 小時 1080p30錄影+弱光 4.5 小時 1080p30錄影+日間閃爍 7 小時 1080p30錄影+ 夜間閃爍 2.5 小時 強光 1.5 小時 中度光 3 小時 弱光 6 小時 日間閃爍 25 小時 夜間閃爍 6 小時 重量 200g 130g Varia後視雷達 Varia後視雷達在後方來車接近時,於您的自行車錶閃爍警示,確保行車安全。內建尾燈的款式,則提供不分晝夜的高能見度,守護您的騎乘安全。 哪一款適合我? 您可以依照是否需要 錄影功能 以及 車燈功能 來進行選擇 Varia RCT715 後視雷達 NT$11,990 了解更多 Varia RTL515 後視雷達 NT$6,990 了解更多 Varia RVR315 後視雷達 NT$4,990 了解更多 內建 1080p 攝影機 - - 內建車燈 - 續航力 錄影+恆亮 最長可達4小時 恆亮 最長可達6小時 最長可達7小時 重量 147g 71g 51g Edge車錶+Rally踏板式功率計+智慧手錶 提供您專屬的每日訓練建議,騎乘中即時查看踩踏動態數據調整,並於騎乘後參考訓練狀態、最大攝氧量和恢復時間。您同時能在手錶上追蹤睡眠分數、身體能量指數等健康指標,並且進行肌力訓練,打造更健康、健全的車手。 看適合車友的手錶 Edge車錶+Varia智慧前燈/後視雷達 Garmin藉由ANT+和藍牙技術,實現無縫連接您的車錶、車燈與後視雷達。您可在車錶上即時查看後方來車,自動錄製高畫質前後行車紀錄,並依照車速自動調整亮度,完整保障安全回家的路。 請選擇分類 + 跑步 11 + 自行車 17 + Tacx 室內訓練台 9 + 複合式 & 三鐵 37 + 潛水 9 + 游泳 42 + 高爾夫 11 + 健康與心率追蹤 5 + 航空錶 1 功能比較 NEW Edge 850 GPS自行車錶 搭載鮮明彩色觸控螢幕、進階訓練功能及內建式喇叭的小巧型 GPS 自行車錶。 Edge 850 是一款 GPS 自行車錶 (自行車碼錶),具備鮮豔彩色觸控螢幕、效能分析、預載自行車地圖,電池續航力最長可達 30 小時。 NT$ 16,990 NEW Edge 550 GPS自行車錶 搭載鮮明彩色螢幕、按鍵控制及進階訓練功能的小巧型 GPS 自行車錶。 Edge 550 是一款 GPS 自行車錶 (自行車碼錶),配備鮮豔彩色螢幕、效能分析、預載自行車地圖,電池續航力最長可達 30 小時。 NT$ 13,990 NEW Rally 210 / 110 系列 自行車專用雙感應功率計 單感應功率計提供準確功率數據,雙感應功率計支援全面踩踏動態分析。 Rally RK210雙邊感應踏板式功率計提供準確功率數據、可在公路及越野踏板本體之間輕鬆轉換,追蹤你的表現。 NT$ 34,990 挑戰武嶺有秘訣? 看Rally功率計如何幫您科學化訓練 >> Edge MTB 登山車GPS自行車錶 堅固耐用並提供登山車指標及全彩路徑地圖的 GPS 自行車錶。 Edge MTB 是專為越野登山車騎士打造的自行車錶,擁有堅固耐用設計與 5 Hz GPS 精準記錄,電池續航最長可達 14 小時。搭載越野導航、跳躍與坡道數據追蹤,支援 Enduro 與 Downhill 騎乘模式,並整合事故偵測等安全功能。 NT$ 12,990 Varia Vue 智慧前燈行車記錄器 前燈攝影機錄製 4K 影像,還有最高亮度達 600 流明的前燈為您照亮前方。 Varia Vue 是一款整合智慧頭燈與支援最高 4K 畫質錄影功能的自行車行車記錄器。搭載高亮度燈光與自動亮度調節功能,在日間閃爍模式下可持續錄影長達 7 小時,為您的每一段騎行旅程提供全面守護與真實記錄。 NT$ 17,990 Edge 1050 系列 旗艦觸控式 GPS自行車錶 你想要不間斷騎乘。你需要一台配備高彩高清觸控螢幕、進階訓練功能、道路危險警示及內建喇叭的頂級自行車錶。 頂級 Edge 1050 自行車錶具備鮮明的彩色觸控螢幕,電池效能在密集使用情況下長達 20 小時。 NT$ 22,990 Edge 840 系列 太陽能觸控式GPS自行車錶 Multi-Band GNSS多頻定位技術,幫助您在最挑戰的環境中獲得更好的定位訊號 NT$ 18,990 Edge 540 系列 GPS自行車錶 按鍵操作快速反應,輕巧方便,Multi-Band GNSS多頻定位技術,幫助您在最挑戰的環境中獲得更好的定位訊號 NT$ 12,990 Edge 1040 系列 太陽能進階 GPS 自行車錶 首款配備太陽能充電及Multi-Band GNSS多頻定位技術的 GPS 自行車錶,讓您騎得更久,在艱困的環境中還能享有更好的定位訊號 Edge 1040 Solar 是 Garmin 首款配備太陽能充電及Multi-Band GNSS多頻定位技術的 GPS 自行車錶,讓您騎得更久,在艱困的環境中還能享有更好的定位訊號,同時搭載最全面的訓練及導航功能。Edge 1040 Solar 也配備運動表現分析功能,能引領您逐步戰勝任何挑戰! NT$ 22,990 Varia RCT715 後視雷達 配備攝影機及尾燈的後視雷達全程記錄你的騎乘。此外,它還能偵測後方接近中的車輛並顯示在相容的 Garmin 裝置上 這款配備攝影機及尾燈的後視雷達全程記錄你的騎乘。此外,它還能偵測後方接近中的車輛並顯示在相容的 Garmin 裝置上。 NT$ 11,990 Rally 系列 踏板式功率計 無論你騎乘哪一種自行車或在哪裡騎乘,這款雙感應功率計都能提供可靠的功率量測數據,並且方便於不同自行車之間轉換使用 Rally XC200 功率計經過極限考驗,能隨你踏越極限。無論你騎乘哪一種自行車或在哪裡騎乘,這款雙感應功率計都能提供可靠的功率量測數據,並且方便於不同自行車之間轉換使用。 NT$ 37,990 Edge 130 Plus 自行車衛星導航 NT$ 5,990 Varia RVR315 後視雷達 NT$ 4,990 Varia RTL515 後視雷達 NT$ 6,990 Edge 830 觸控式進階自行車衛星導航 NT$ 16,990 Edge 530 進階自行車衛星導航 NT$ 9,990 Varia™ UT800 自行車智慧車燈 Varia™ UT800自行車智慧車燈, 800 流明的穩定照光,讓您可以放心地騎乘。搭載相容的Edge®自行車衛星導航,可進行無線遙控設,還會根據您的車速自動調整照明強度。 NT$ 4,990 想騎新路線不迷路? 看Edge車錶如何導航自訂路線 >> 最多比較 4 項產品 功能比較 清除全部 騎遍全台的約騎活動 立即加入 Garmin Cycling Club 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 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 22:05:39 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 15/21 個網址 2025-10-13 22:05:39 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/apps/ 2025-10-13 22:05:39 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/apps/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/apps/ 的第 1/3 次請求 2025-10-13 22:05:39 - 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 0x7013d5366a50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/51633ad6acfbbb55eba3dba4e4b3d33a 2025-10-13 22:05:39 - 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 0x7013d5298f10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/51633ad6acfbbb55eba3dba4e4b3d33a 2025-10-13 22:05:39 - 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 0x7013d5299810>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/51633ad6acfbbb55eba3dba4e4b3d33a 2025-10-13 22:05:39 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:05:39 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:05:39 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:05:39 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:05:39 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:05:39 - 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 22:05:39 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:05:40 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:05:40 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:05:40 - 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 22:05:40 - 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 0x5e0c6b4904e3 <unknown> #1 0x5e0c6b1bfc76 <unknown> #2 0x5e0c6b1e8d78 <unknown> #3 0x5e0c6b1e5029 <unknown> #4 0x5e0c6b223ccc <unknown> #5 0x5e0c6b22347f <unknown> #6 0x5e0c6b21ade3 <unknown> #7 0x5e0c6b1f02dd <unknown> #8 0x5e0c6b1f134e <unknown> #9 0x5e0c6b4503e4 <unknown> #10 0x5e0c6b4543d7 <unknown> #11 0x5e0c6b45eb20 <unknown> #12 0x5e0c6b455023 <unknown> #13 0x5e0c6b4231aa <unknown> #14 0x5e0c6b4796b8 <unknown> #15 0x5e0c6b479847 <unknown> #16 0x5e0c6b489243 <unknown> #17 0x769b50494ac3 <unknown> 2025-10-13 22:05:40 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:05:40 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:05:41 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:05:41 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/apps/ 2025-10-13 22:05:41 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 15/21 2025-10-13 22:05:44 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/apps/ 2025-10-13 22:05:44 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:05:44 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:05:44 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:05:44 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/apps/ 2025-10-13 22:05:46 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:05:46 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:05:46 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:05:51 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 15/21 2025-10-13 22:06:01 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 15/21 2025-10-13 22:06:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:06:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:06:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:06:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:06:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:06:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:06:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:06:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:06:11 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 15/21 2025-10-13 22:06:17 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 308 2025-10-13 22:06:18 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 343 2025-10-13 22:06:20 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 343,內容可能已加載完成 2025-10-13 22:06:20 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:06:22 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 15/21 2025-10-13 22:06:23 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:06:23 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:06:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 15/21 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/apps/ (實際 URL: https://www.garmin.com.tw/products/apps/?cat=intosports) 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 216242 字節 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1156 字節 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 852 字節 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1547 字節,約 220 個詞,89 行 2025-10-13 22:06:32 - 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 運動 & 戶外 Apps 生活中需要 app 應用程式為您處理的瑣事Garmin都知道。將 Connect IQ™ 商店裡的各 app 應用程式,免費下載至您的智慧型腕錶,順便也替腕錶換個新臉孔吧! 請選擇分類 + 運動 & 戶外 Apps 13 + 車用 Apps 5 + 電腦應用軟體 7 Garmin Connect App 將你的Garmin 裝置與Garmin Connect 行動版進行配對,當完成活動後運動結果將自動上傳至Garmin Connect Garmin Golf 免費的應用程式方便您與其他高爾夫球友一較高下並互相聯絡。 Garmin Explore App Garmin Messenger App Tacx Training App STR3AMUP! 電腦直播程式 Garmin Jr. App Garmin Dive App Varia App Connect IQ Store Impact App Garmin Sports 從跑步夥伴到線上競賽,從跑步訓練營到教練遠端指導,在Garmin Sports上你能找到關於跑步的一切! Garmin Sports線上訓練營課程豐富,下載訓練計畫傳送至Garmin跑錶,佩戴Garmin跑錶完成指定訓練課程後,將資料同步至雲端,教練就能及時提供分析與指導。參與Garmin Sports上舉辦的不同類型競賽,贏取榮譽勳章,運動習慣的養成與實力提升同時兼顧。 VIRB Remote Control App 完全免費的VIRB Mobile應用程式可連結Garmin VIRB與GDR行車記錄器,透過簡單步驟,即能無線連結裝置讀取錄製影像並執行簡易剪輯;針對VIRB運動攝影機,更賦予遠端遙控與即時串流功能,並為影像添加令人驚艷的G-Metrix™ 動態感知數據。 最多比較 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 22:06:32 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 16/21 個網址 2025-10-13 22:06:32 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 2025-10-13 22:06:32 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 的第 1/3 次請求 2025-10-13 22:06:32 - 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 0x7013d5366a50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f5b30feb5bfcd0d953e65900e0b23d86 2025-10-13 22:06:32 - 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 0x7013d5642210>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f5b30feb5bfcd0d953e65900e0b23d86 2025-10-13 22:06:32 - 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 0x7013d5643810>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/f5b30feb5bfcd0d953e65900e0b23d86 2025-10-13 22:06:32 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:06:32 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:06:32 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:06:32 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:06:32 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:06:32 - 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 22:06:33 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:06:33 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:06:33 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:06:33 - 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 22:06:33 - 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 0x5eaa0ac594e3 <unknown> #1 0x5eaa0a988c76 <unknown> #2 0x5eaa0a9b1d78 <unknown> #3 0x5eaa0a9ae029 <unknown> #4 0x5eaa0a9ecccc <unknown> #5 0x5eaa0a9ec47f <unknown> #6 0x5eaa0a9e3de3 <unknown> #7 0x5eaa0a9b92dd <unknown> #8 0x5eaa0a9ba34e <unknown> #9 0x5eaa0ac193e4 <unknown> #10 0x5eaa0ac1d3d7 <unknown> #11 0x5eaa0ac27b20 <unknown> #12 0x5eaa0ac1e023 <unknown> #13 0x5eaa0abec1aa <unknown> #14 0x5eaa0ac426b8 <unknown> #15 0x5eaa0ac42847 <unknown> #16 0x5eaa0ac52243 <unknown> #17 0x7e4765894ac3 <unknown> 2025-10-13 22:06:33 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:06:33 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:06:34 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:06:34 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 2025-10-13 22:06:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.1MB, CPU 0.0% 2025-10-13 22:06:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:06:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 186.5MB, CPU 0.0% 2025-10-13 22:06:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:06:37 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 2025-10-13 22:06:37 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:06:37 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:06:37 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:06:37 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 2025-10-13 22:06:39 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:06:39 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:06:39 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:06:42 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 16/21 2025-10-13 22:06:52 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 16/21 2025-10-13 22:07:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 16/21 2025-10-13 22:07:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:07:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:07:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:07:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:07:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:07:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:07:10 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 1504 2025-10-13 22:07:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:07:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:07:11 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 502 2025-10-13 22:07:12 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 16/21 2025-10-13 22:07:13 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 502,內容可能已加載完成 2025-10-13 22:07:13 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:07:16 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:07:16 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:07:22 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 16/21 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches (實際 URL: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches) 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 249399 字節 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 4073 字節 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 3942 字節 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 4464 字節,約 478 個詞,234 行 2025-10-13 22:07: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 時尚手錶 因為陪伴你的時間很長,我們提供多款錶盤與錶帶設計,讓你自由切換運動風格與正式服裝。 請選擇分類 + 所有智慧穿戴手錶 66 + 戶外運動手錶 28 + 跑步手錶 7 + 越野跑手錶 13 + 室內健身手錶 12 + 複合式 & 三鐵錶 33 + 潛水錶 6 + 游泳錶 42 + 高爾夫手錶 11 + 女性手錶 28 + 時尚手錶 17 + 健康手錶 18 + 支援心電圖App手錶 14 + 行動支付 & 悠遊卡手錶 51 + 行動支付 & 一卡通手錶 2 + 音樂手錶 30 + 航海錶 3 + 航空錶 1 + MARQ 工藝腕錶 9 功能比較 NEW Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。 Venu 4 是一款小錶徑的健康與健身智慧手錶,搭載明亮 AMOLED 螢幕、24/7 全天候健康追蹤、多頻多衛星定位、LED 手電筒,以及長達 10 天的電池續航。 NT$ 16,990 Venu X1 全方位 GPS 智慧腕錶 俐落輕量、配備明亮 2 吋 AMOLED 螢幕並搭載進階健康及健身功能的 GPS 智慧腕錶。 Venu X1劃時代的極致纖薄設計,結合2吋AMOLED高清螢幕與藍寶石鏡面,兼具質感與耐用性。整合實用功能與先進健康監測,從科學化訓練、恢復建議到戶外探索,全方位支援每一步挑戰,助你突破極限、超越自我。 NT$ 23,990 vívoactive 6 系列 GPS 智慧腕錶 這款健康與健身 GPS 智慧手錶配備 AMOLED 螢幕、健身功能、基本健康追蹤和智慧功能。 vívoactive 6 智慧手錶 AMOLED 螢幕亮度再升級,電池續航力最長可達 11 天。提供全天候健康追蹤及豐富運動健身功能,隨時應援一切所需。 NT$ 9,990 智慧手錶怎麼選? 了解更多 >> Lily 2 活力版系列 智慧腕錶 LILY了解你-關注潮流、愛好運動。它擁有超越智慧錶的珠寶配飾外型,全新搭載 GPS。 NT$ 9,990 Lily 2 系列 智慧腕錶 LILY了解你-關注潮流、在意健康,它擁有超越智慧錶的珠寶配飾外型,且搭備皮革&編織錶帶及 Garmin Pay 感應支付功能 想要時尚的印花錶盤?還是要智慧觸控螢幕?何不兩者兼得?小巧時尚的智慧腕錶,幫您追蹤重要的健康數據。在如此迷人的腕錶上還能讀取簡訊、來電及行事曆提示2?沒錯,就是這麼棒。是的,這支手錶還能追蹤您的步數、睡眠狀況、壓力及身體能量指數。內建瑜珈、健行、心肺、呼吸練習及更多活動 app,提升健康不麻煩。別讓生活暫停。電池效能長達 5 天,讓您每次充電後用得更久。 NT$ 7,990 Lily 2 經典款系列 智慧腕錶 LILY了解你-關注潮流、在意健康,它擁有超越智慧錶的珠寶配飾外型,且搭備皮革&編織錶帶及 Garmin Pay 感應支付功能 想要時尚的印花錶盤?還是要智慧觸控螢幕?何不兩者兼得?小巧時尚的智慧腕錶,幫您追蹤重要的健康數據。在如此迷人的腕錶上還能讀取簡訊、來電及行事曆提示?沒錯,就是這麼棒。是的,這支手錶還能追蹤您的步數、睡眠狀況、壓力及身體能量指數。內建瑜珈、健行、心肺、呼吸練習及更多活動 app,提升健康不麻煩。別讓生活暫停。電池效能長達 5 天,讓您每次充電後用得更久。 NT$ 9,990 SALE vívoactive 5 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,vívoactive 5 不只是支智慧手錶 — 而是能支持你達成任何目標的個人腕上教練。 vivoactive 5 GPS 智慧手錶搭載先進的 AMOLED 觸控螢幕,提供最長達 11 天的持久電池壽命。透過此智慧手錶,您可以獲得豐富的健康資訊,同時內建多款運動應用程式和專業運動課程,讓您全面掌握健康狀況,享受高效運動體驗。 NT$ 6,990 NT$ 9,990 Venu 3 系列 GPS 智慧腕錶 搭載專門的進階健康及健身功能,還可撥打電話及發送簡訊,Venu 3不只是支智慧手錶-而是能時刻陪伴你,支持你達成任何目標的個人腕上教練。 NT$ 14,990 為什麼選Garmin手錶? 立即看心得 >> vívomove Trend 系列 指針智慧腕錶 結合傳統指針腕錶外型與基本的智慧功能,例如接收來自相容智慧型手機的通知以及 Garmin Pay 感應支付 vívomove Trend 複合式智慧腕錶結合傳統指針腕錶外型與基本的智慧功能,例如接收來自相容智慧型手機的通知以及 Garmin Pay 感應支付。 NT$ 9,900 Lily 系列 智慧腕錶 小巧精緻的Lily智慧腕錶,時尚印花錶盤搭載隱藏式螢幕,優雅從容掌握全天健康數據 想要時尚的印花錶盤?還是要智慧觸控螢幕?何不兩者兼得?小巧時尚的智慧腕錶,幫您追蹤重要的健康數據。在如此迷人的腕錶上還能讀取簡訊、來電及行事曆提示2?沒錯,就是這麼棒。是的,這支手錶還能追蹤您的步數、睡眠狀況、壓力及身體能量指數。內建瑜珈、健行、心肺、呼吸練習及更多活動 app,提升健康不麻煩。別讓生活暫停。電池效能長達 5 天,讓您每次充電後用得更久。 NT$ 6,990 Venu Sq 2 Music系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 8,990 Venu Sq 2 系列 GPS 智慧腕錶 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能 搭載明亮的 AMOLED 螢幕及最長 10 天的電池效能,這款 GPS 智慧腕錶結合了能激勵你嘗試不同運動的健康監測及健身功能。 NT$ 7,990 Venu 2 Plus 系列 GPS 智慧腕錶 具備進階健康監測及健身功能,不只傾聽您的健康狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,更可享受在手上撥打及接聽電話的輕鬆便利 Venu 2 Plus具備進階健康監測及健身功能,可傾聽並幫助您掌握自身體能狀態, 這款GPS智慧腕錶與相容的智慧型手機配對後,即可享受從手上撥打及接聽電話的輕鬆便利,甚至能呼叫手機的語音助理回覆文字訊息。 NT$ 14,990 vívomove Sport 系列 指針智慧腕錶 融合永恆經典的腕錶造型及智慧科技,敲敲錶面,即刻喚醒觸控螢幕,品味型動生活 NT$ 5,990 Venu 2 系列 GPS 智慧腕錶 活得健康就會活得更好。這款 GPS 智慧腕錶具備進階健康偵測及健身功能,可幫助您更了解體內的狀態 追蹤更多的健康數據,幫助您更了解體內的狀態。利用 25 種以上的內建運動應用程式,探索運動的新樂趣。需要教練指導嗎?訓練動畫就在您的手腕上。下載喜歡的歌曲到您的腕錶上,手機不再永不離身。支援 Garmin Pay 行動支付服務,出門不帶錢包也能輕鬆購物付款。精緻細膩的 AMOLED 螢幕還能有11 天電量?沒錯,又多了兩個愛上這款腕錶的理由。 NT$ 13,990 vívomove Luxe 系列 指針智慧腕錶 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒。只需輕滑錶面,即刻喚醒隱藏式觸控螢幕。vívomove Style與vívomove Luxe更具備金屬材質機身及全彩AMOLED螢幕,多種樣式供您選擇。多樣身心健康功能則有助於您追蹤壓力狀態及目前的身體能量指數。需要運動健身時,連上智慧型手機的GPS即可追蹤戶外步行及跑步。充電一次,電池效能長達4天,手錶模式,則可達一星期,少了每天充電的麻煩,更多了生活上的便利。 NT$ 17,990 vívomove Style 指針智慧腕錶 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒 經典指針結合智慧功能成就複合式智慧腕錶,方便您直接在手腕上查看簡訊及通知提醒。只需輕滑錶面,即刻喚醒隱藏式觸控螢幕。vívomove Style與vívomove Luxe更具備金屬材質機身及全彩AMOLED螢幕,多種樣式供您選擇。多樣身心健康功能則有助於您追蹤壓力狀態及目前的身體能量指數。需要運動健身時,連上智慧型手機的GPS即可追蹤戶外步行及跑步。充電一次,電池效能長達4天,手錶模式,則可達一星期,少了每天充電的麻煩,更多了生活上的便利。 NT$ 11,990 最多比較 4 項產品 功能比較 清除全部 追蹤、分析與分享你的數據 拜訪 Garmin Connect 下載更多擴充功能 拜訪 Connect IQ 額外的結構化內容: • 客戶服務支援中心 • 維修服務 • 智能客服 • 購物說明 • 聯絡我們 • 品牌體驗店 • 尋找門市 • 最新優惠 • 關於我們 • 加入 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 22:07:25 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 17/21 個網址 2025-10-13 22:07:25 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 2025-10-13 22:07:25 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:07:25 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 的第 1/3 次請求 2025-10-13 22:07:26 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d56ddd50>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/12931100d7fe6b2a95f5d51fd2301b6b 2025-10-13 22:07:26 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d527f590>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/12931100d7fe6b2a95f5d51fd2301b6b 2025-10-13 22:07:26 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d527f510>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/12931100d7fe6b2a95f5d51fd2301b6b 2025-10-13 22:07:26 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:07:26 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:07:26 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:07:26 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:07:26 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:07:26 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:07:26 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:07:26 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-13 22:07:26 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:07:26 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:07:26 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:07: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 22:07: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 0x571345a264e3 <unknown> #1 0x571345755c76 <unknown> #2 0x57134577ed78 <unknown> #3 0x57134577b029 <unknown> #4 0x5713457b9ccc <unknown> #5 0x5713457b947f <unknown> #6 0x5713457b0de3 <unknown> #7 0x5713457862dd <unknown> #8 0x57134578734e <unknown> #9 0x5713459e63e4 <unknown> #10 0x5713459ea3d7 <unknown> #11 0x5713459f4b20 <unknown> #12 0x5713459eb023 <unknown> #13 0x5713459b91aa <unknown> #14 0x571345a0f6b8 <unknown> #15 0x571345a0f847 <unknown> #16 0x571345a1f243 <unknown> #17 0x7d34c8294ac3 <unknown> 2025-10-13 22:07:26 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:07:26 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:07:27 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:07:27 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 2025-10-13 22:07:29 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 2025-10-13 22:07:29 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:07:29 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:07:29 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:07:29 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 2025-10-13 22:07:31 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:07:31 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:07:31 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:07:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 17/21 2025-10-13 22:07:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 17/21 2025-10-13 22:07:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 17/21 2025-10-13 22:08:02 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 261 2025-10-13 22:08:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 17/21 2025-10-13 22:08:03 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 404 2025-10-13 22:08:05 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 404,內容可能已加載完成 2025-10-13 22:08:05 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:08:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.1MB, CPU 0.0% 2025-10-13 22:08:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:08:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 186.5MB, CPU 0.0% 2025-10-13 22:08:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:08:08 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:08:08 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:08:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:08:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:08:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:08:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:08:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:08:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 17/21 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing (實際 URL: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing) 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 238123 字節 2025-10-13 22:08:17 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 959 字節 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 806 字節 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1350 字節,約 251 個詞,135 行 2025-10-13 22:08:18 - 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航海設備不只讓漁貨豐收滿滿,更幫助船隻平安歸航。 請選擇分類 + 漁業用設備 17 + 航圖機 & 魚探機 29 + 聲納模組 6 + 探頭 90 + 即時動態聲納 8 + 風速儀 & 顯示儀器 20 + 無線電通訊 10 + 天線與感測器 8 + 自動舵 25 + Fusion 航海娛樂系統 22 + 數位開關 2 + 多功能網路型產品 7 + 雷達 7 + 帆船產品 25 + 手持與穿戴式裝置 5 + 電動船外機 4 + 攝影機 3 + 應用程式 2 Garmin GT15M-TM 最適合講求清晰船底畫質與鮮明的魚弧,以及出色的目標區隔,深度達 1900 英尺的釣者 CR 1522 CS 1522 GMR 18 HD+ 圓頂雷達 GT15M-TH AQUAMAP 1222 AQUAMAP 1222xs AQUAMAP 1022xs AQUAMAP 1022 FF 650 GPS GPSMAP 585 Plus FF 350 Plus GMR Fantom 24 圓頂雷達 GMR Fantom 18 圓頂雷達 Airmar B265LH GSD™ 25 GPS 73 最多比較 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 22:08:18 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 18/21 個網址 2025-10-13 22:08:18 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/ontheroad/?cat=automotive 2025-10-13 22:08:18 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/ontheroad/?cat=automotive, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/ontheroad/?cat=automotive 的第 1/3 次請求 2025-10-13 22:08:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d5205c10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/a68bb02eb658e7c4be2a4614561d4822 2025-10-13 22:08:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d5712690>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/a68bb02eb658e7c4be2a4614561d4822 2025-10-13 22:08:18 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d57129d0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/a68bb02eb658e7c4be2a4614561d4822 2025-10-13 22:08:18 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:08:18 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:08:18 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:08:18 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:08:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:08:18 - INFO - WDM - [logger.py:11] - log - About to download new driver from https://chromedriver.storage.googleapis.com/114.0.5735.90/chromedriver_linux64.zip 2025-10-13 22:08:18 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:08:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:08:18 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:08:19 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 22:08:19 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x5fceebc884e3 <unknown> #1 0x5fceeb9b7c76 <unknown> #2 0x5fceeb9e0d78 <unknown> #3 0x5fceeb9dd029 <unknown> #4 0x5fceeba1bccc <unknown> #5 0x5fceeba1b47f <unknown> #6 0x5fceeba12de3 <unknown> #7 0x5fceeb9e82dd <unknown> #8 0x5fceeb9e934e <unknown> #9 0x5fceebc483e4 <unknown> #10 0x5fceebc4c3d7 <unknown> #11 0x5fceebc56b20 <unknown> #12 0x5fceebc4d023 <unknown> #13 0x5fceebc1b1aa <unknown> #14 0x5fceebc716b8 <unknown> #15 0x5fceebc71847 <unknown> #16 0x5fceebc81243 <unknown> #17 0x7d303e094ac3 <unknown> 2025-10-13 22:08:19 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:08:19 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:08:19 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:08:19 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/ontheroad/?cat=automotive 2025-10-13 22:08:22 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/ontheroad/?cat=automotive 2025-10-13 22:08:22 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:08:22 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:08:22 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:08:22 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/ontheroad/?cat=automotive 2025-10-13 22:08:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 18/21 2025-10-13 22:08:24 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:08:24 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:08:24 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:08:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 18/21 2025-10-13 22:08:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 18/21 2025-10-13 22:08:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 18/21 2025-10-13 22:08:55 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 240 2025-10-13 22:08:56 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 345 2025-10-13 22:08:58 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 345,內容可能已加載完成 2025-10-13 22:08:58 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:09:01 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:09:01 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:09:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 18/21 2025-10-13 22:09:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:09:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:09:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:09:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:09:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:09:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/ontheroad/?cat=automotive (實際 URL: https://www.garmin.com.tw/products/ontheroad/?cat=automotive) 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 204584 字節 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1036 字節 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 725 字節 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1427 字節,約 201 個詞,91 行 2025-10-13 22:09:10 - 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 車用衛星導航 值得信賴的 GPS 車用導航以其全面性的功能一掃您開車時的疑惑。無論是每日的通勤抑或公路之旅,Garmin 導航機都伴您左右。貼心的駕駛警示幫助您提高警覺,只為了讓您安全抵達目的地。 請選擇分類 + 車用衛星導航 3 + 重機衛星導航 2 + 行車記錄器 / 倒車攝影 13 功能比較 Garmin Drive 53 車用衛星導航 搭載 5 吋全玻璃觸控螢幕,搭配獨家駕駛警示、中文導航語音、科技執法、測速照相提醒與即時路況資訊 5 吋全玻璃觸控螢幕,搭配獨家駕駛警示、測速提醒與即時路況資訊,為您帶來專業的導航體驗。 NT$ 4,990 Garmin DriveSmart 76 7" 車用衛星導航 擁有7吋大螢幕的車用衛星導航,具備獨家駕駛警示、科技執法提醒及專業導航功能 無論家庭旅遊、周末度假或日常通勤,擁有7吋大螢幕的Garmin DriveSmart 76車用衛星導航具備獨家駕駛警示、科技執法提醒及專業導航功能。您的美好旅程,就讓 Garmin DriveSmart 一路相隨。 NT$ 8,990 Garmin DriveSmart 86 8" 車用衛星導航 擁有8吋大螢幕的車用衛星導航,具備獨家駕駛警示、科技執法提醒及專業導航功能 無倫是家庭旅遊、周末度假或日常通勤,擁有8吋大螢幕的Garmin DriveSmart 86車用衛星導航具備獨家駕駛警示、科技執法提醒及專業導航功能。您的美好旅程,就讓 Garmin DriveSmart 一路相隨。 NT$ 10,990 最多比較 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 22:09:10 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 19/21 個網址 2025-10-13 22:09:10 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/news/newscenter/ 2025-10-13 22:09:10 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/news/newscenter/, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:20 秒 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/news/newscenter/ 的第 1/3 次請求 2025-10-13 22:09:10 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d6f2e710>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/cef26b2b24aaf69fa2a289fb81732748 2025-10-13 22:09:10 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d562da10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/cef26b2b24aaf69fa2a289fb81732748 2025-10-13 22:09:10 - WARNING - urllib3.connectionpool - [connectionpool.py:868] - urlopen - Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7013d562ddd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/cef26b2b24aaf69fa2a289fb81732748 2025-10-13 22:09:10 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:09:10 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:09:10 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:09:10 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:09:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:09:11 - 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 22:09:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:09:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:09:11 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:09:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:09:11 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:09:11 - INFO - WDM - [logger.py:11] - log - Driver has been saved in cache [/opt/urlanalyze/.wdm/drivers/chromedriver/linux64/114.0.5735.90] 2025-10-13 22:09:11 - ERROR - WebScraper - [scraper.py:893] - _create_driver_internal - webdriver-manager 方法失敗: Message: unknown error: Chrome failed to start: exited abnormally. (unknown error: DevToolsActivePort file doesn't exist) (The process started from chrome location /usr/bin/google-chrome is no longer running, so ChromeDriver is assuming that Chrome has crashed.) Stacktrace: #0 0x568e17fcb4e3 <unknown> #1 0x568e17cfac76 <unknown> #2 0x568e17d23d78 <unknown> #3 0x568e17d20029 <unknown> #4 0x568e17d5eccc <unknown> #5 0x568e17d5e47f <unknown> #6 0x568e17d55de3 <unknown> #7 0x568e17d2b2dd <unknown> #8 0x568e17d2c34e <unknown> #9 0x568e17f8b3e4 <unknown> #10 0x568e17f8f3d7 <unknown> #11 0x568e17f99b20 <unknown> #12 0x568e17f90023 <unknown> #13 0x568e17f5e1aa <unknown> #14 0x568e17fb46b8 <unknown> #15 0x568e17fb4847 <unknown> #16 0x568e17fc4243 <unknown> #17 0x7b4cb2494ac3 <unknown> 2025-10-13 22:09:11 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:09:11 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:09:12 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:09:12 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/news/newscenter/ 2025-10-13 22:09:14 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 19/21 2025-10-13 22:09:15 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/news/newscenter/ 2025-10-13 22:09:15 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:09:15 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:09:15 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:09:15 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/news/newscenter/ 2025-10-13 22:09:17 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: jquery 2025-10-13 22:09:17 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: ajax 2025-10-13 22:09:17 - INFO - WebScraper - [scraper.py:1224] - get_content - 檢測到AJAX內容,等待AJAX請求完成 2025-10-13 22:09:17 - INFO - WebScraper - [scraper.py:1777] - _wait_for_ajax_completion - jQuery AJAX 請求已完成 2025-10-13 22:09:17 - INFO - WebScraper - [scraper.py:1788] - _wait_for_ajax_completion - XHR 請求已完成 2025-10-13 22:09:21 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 351 2025-10-13 22:09:23 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 351,內容可能已加載完成 2025-10-13 22:09:23 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:09:24 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 19/21 2025-10-13 22:09:35 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 19/21 2025-10-13 22:09:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.1MB, CPU 0.0% 2025-10-13 22:09:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:09:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 186.5MB, CPU 0.0% 2025-10-13 22:09:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:09:41 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/news/newscenter/ (實際 URL: https://www.garmin.com.tw/news/newscenter/) 2025-10-13 22:09:41 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:09:41 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:09:41 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:09:41 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 190465 字節 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1024 字節 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 650 字節 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 1415 字節,約 223 個詞,99 行 2025-10-13 22:09:42 - 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 新聞 2025.10.03 科技引領永續|Garmin 升級路殺警示功能 推動台灣生態共存新典範 新聞 2025.09.22 最懂你的健康教練上線!Garmin Venu 4量身打造專屬你的全天候健康生活 新聞 2025.09.22 跑遍全亞洲!2025 Garmin Run 串聯 10 大城市 臺北站盛大開跑 新聞 2025.09.05 Garmin搶先全球推 MicroLED智慧錶fēnix 8 Pro搭載inReach通訊科技 新聞 2025.07.18 Garmin Descent S1突破水域界線 革命性創新通訊技術強化潛水安全 新聞 2025.07.01 2025 Garmin Health 大獎賽決賽入圍名單 新聞 2025.06.24 原來呼吸也能療癒!Garmin 陪你探索瑜伽與呼吸練習 新聞 2025.06.18 Garmin 打造史上最輕薄旗艦腕錶Venu X1刷新智慧穿戴標準 新聞 2025.05.27 Garmin Forerunner 系列再創巔峰 跑錶王者成就你的每一步 新聞 2025.04.23 亞洲殿堂級路跑賽事!2025 Garmin Run 亞洲系列賽臺北站即日起報名 新聞 2025.04.23 Garmin vívoactive 6 輕盈有型全新登場 你的健康生活教練 打造專屬健康節奏 新聞 2025.04.22 2025 Garmin Health 全球大獎賽開始報名 第 1/26 頁 1 2 3 > 最後 » 訂閱電子報 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 22:09:42 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 20/21 個網址 2025-10-13 22:09:42 - INFO - main - [url_processor.py:190] - process_url - 處理子頁面: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 2025-10-13 22:09:42 - INFO - main - [url_processor.py:198] - process_url - 嘗試獲取子頁面內容 (嘗試 1/2, force_new_driver=False) 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1004] - get_content - 正在獲取網頁內容: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar, use_selenium=True, proxy=False, force_new_driver=False 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1035] - get_content - 設置頁面加載超時:21 秒 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:1053] - get_content - 嘗試獲取 https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 的第 1/3 次請求 2025-10-13 22:09:42 - 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 0x7013d5713190>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/390e400b06b962305dda548b8913c7ab 2025-10-13 22:09:42 - 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 0x7013d5621cd0>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/390e400b06b962305dda548b8913c7ab 2025-10-13 22:09:42 - 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 0x7013d5621b10>: Failed to establish a new connection: [Errno 111] Connection refused')': /session/390e400b06b962305dda548b8913c7ab 2025-10-13 22:09:42 - ERROR - WebScraper - [scraper.py:1082] - get_content - 通過實例池管理器創建WebDriver失敗: cannot create weak reference to 'NoneType' object 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:857] - _create_driver_internal - 正在創建 WebDriver 實例... 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:861] - _create_driver_internal - 嘗試方法1:使用智能路徑發現機制 2025-10-13 22:09:42 - ERROR - WebScraper - [scraper.py:878] - _create_driver_internal - 智能路徑搜索失敗: 'WebScraper' object has no attribute 'smart_find_chrome_paths' 2025-10-13 22:09:42 - INFO - WebScraper - [scraper.py:882] - _create_driver_internal - 嘗試方法2:使用 webdriver-manager 自動管理 2025-10-13 22:09:42 - INFO - WDM - [logger.py:11] - log - ====== WebDriver manager ====== 2025-10-13 22:09:42 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:09:42 - 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 22:09:42 - INFO - WDM - [logger.py:11] - log - Driver downloading response is 200 2025-10-13 22:09:42 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:09:42 - INFO - WDM - [logger.py:11] - log - Get LATEST chromedriver version for google-chrome 2025-10-13 22:09:43 - 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 22:09:43 - 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 0x622e0d6654e3 <unknown> #1 0x622e0d394c76 <unknown> #2 0x622e0d3bdd78 <unknown> #3 0x622e0d3ba029 <unknown> #4 0x622e0d3f8ccc <unknown> #5 0x622e0d3f847f <unknown> #6 0x622e0d3efde3 <unknown> #7 0x622e0d3c52dd <unknown> #8 0x622e0d3c634e <unknown> #9 0x622e0d6253e4 <unknown> #10 0x622e0d6293d7 <unknown> #11 0x622e0d633b20 <unknown> #12 0x622e0d62a023 <unknown> #13 0x622e0d5f81aa <unknown> #14 0x622e0d64e6b8 <unknown> #15 0x622e0d64e847 <unknown> #16 0x622e0d65e243 <unknown> #17 0x74a15de94ac3 <unknown> 2025-10-13 22:09:43 - INFO - WebScraper - [scraper.py:897] - _create_driver_internal - 嘗試方法3:使用系統 PATH 中的 chromedriver 2025-10-13 22:09:43 - INFO - WebScraper - [scraper.py:916] - _create_driver_internal - 找到 chromedriver: /usr/local/bin/chromedriver 2025-10-13 22:09:43 - INFO - WebScraper - [scraper.py:920] - _create_driver_internal - 使用系統 chromedriver 成功創建 WebDriver 2025-10-13 22:09:43 - INFO - WebScraper - [scraper.py:1099] - get_content - 使用 Selenium 訪問 URL: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 2025-10-13 22:09:46 - INFO - WebScraper - [scraper.py:1158] - get_content - 等待頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 2025-10-13 22:09:46 - INFO - WebScraper - [scraper.py:1165] - get_content - 頁面body元素已加載 2025-10-13 22:09:46 - INFO - WebScraper - [scraper.py:1178] - get_content - 頁面加載狀態: complete 2025-10-13 22:09:46 - INFO - WebScraper - [scraper.py:1195] - get_content - 找到主要內容元素: main 2025-10-13 22:09:46 - INFO - WebScraper - [scraper.py:1206] - get_content - 頁面基本加載完成: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 2025-10-13 22:09:46 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 20/21 2025-10-13 22:09:48 - INFO - WebScraper - [scraper.py:1610] - _detect_page_type - 檢測到的框架: vue, jquery 2025-10-13 22:09:48 - INFO - WebScraper - [scraper.py:1216] - get_content - 檢測到頁面類型: spa 2025-10-13 22:09:48 - INFO - WebScraper - [scraper.py:1220] - get_content - 檢測到單頁應用(SPA),應用特殊等待策略 2025-10-13 22:09:57 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 20/21 2025-10-13 22:10:08 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 20/21 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:10:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:10:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:10:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:10:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:10:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:10:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:10:19 - INFO - WebScraper - [scraper.py:1707] - _wait_for_spa_content - SPA內容已加載在容器 main,內容長度: 979 2025-10-13 22:10:19 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 20/21 2025-10-13 22:10:20 - INFO - WebScraper - [scraper.py:1238] - get_content - 初始可見元素數量: 430 2025-10-13 22:10:22 - INFO - WebScraper - [scraper.py:1248] - get_content - 元素數量穩定: 430,內容可能已加載完成 2025-10-13 22:10:22 - INFO - WebScraper - [scraper.py:1255] - get_content - 等待可能的動態內容... 2025-10-13 22:10:25 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'spinner')],等待其消失 2025-10-13 22:10:25 - INFO - WebScraper - [scraper.py:1270] - get_content - 發現加載指示器: //div[contains(@class, 'loader')],等待其消失 2025-10-13 22:10:30 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 20/21 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:1321] - get_content - 成功獲取 URL 內容: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar (實際 URL: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar) 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:1519] - get_content - 清理在 get_content 方法中創建的 WebDriver 實例 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:105] - driver - 在設置新WebDriver前關閉舊實例 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:249] - close_driver - 線程 123230527530112: 關閉 WebDriver 實例 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:277] - close_driver - WebDriver 已成功關閉 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:307] - close_driver - 已執行 Python 垃圾回收 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:1526] - get_content - WebDriver 實例已成功返回到池中 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:1931] - extract_text_from_html - 開始從HTML中提取文本,HTML長度: 254992 字節 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:1943] - extract_text_from_html - 使用 trafilatura 成功提取文本,長度: 262 字節 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:1968] - extract_text_from_html - 使用 BeautifulSoup 基本提取成功,長度: 1857 字節 2025-10-13 22:10:34 - INFO - WebScraper - [scraper.py:2017] - extract_text_from_html - 使用 BeautifulSoup 針對性提取成功,長度: 1708 字節 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2114] - extract_text_from_html - 成功提取結構化數據,長度: 379 字節 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 trafilatura 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_basic 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 beautifulsoup_targeted 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2141] - extract_text_from_html - 提取源 structured_data 聯絡信息檢查: 電子郵件=False, 電話=False, 分數=0 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2157] - extract_text_from_html - 選擇 BeautifulSoup 基本提取作為最佳結果(無聯絡信息) 2025-10-13 22:10:35 - INFO - WebScraper - [scraper.py:2177] - extract_text_from_html - 已成功提取文本,總長度: 2248 字節,約 344 個詞,162 行 2025-10-13 22:10: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 航圖機 & 魚探機 Garmin旗下的航圖機及魚探儀不僅操作簡單好上手,直覺式的介面設計,讓您輕鬆駕馭先進導航及聲納技術。Garmin擁有廣泛的支援度和完整的產品生態系,能滿足任何船長或釣客的需求。 請選擇分類 + 漁業用設備 17 + 航圖機 & 魚探機 29 + 聲納模組 6 + 探頭 90 + 即時動態聲納 8 + 風速儀 & 顯示儀器 20 + 無線電通訊 10 + 天線與感測器 8 + 自動舵 25 + Fusion 航海娛樂系統 22 + 數位開關 2 + 多功能網路型產品 7 + 雷達 7 + 帆船產品 25 + 手持與穿戴式裝置 5 + 電動船外機 4 + 攝影機 3 + 應用程式 2 ECHOMAP Ultra 2 16 吋 航圖機 16 吋觸控螢幕顯示器和實體按鍵功能,可選配聲納及海圖。 專為重度釣魚玩家打造,這款 16 吋全高清航儀螢幕,提供卓越的大畫面清晰度、亮度與可讀性,無論是導航地圖或聲納回波皆一目了然 GPSMAP 1523xsv 觸控式航圖機 15 吋超寬觸控螢幕航圖機,配備高解析度螢幕。 GPSMAP 1523xsv 是一款 15 吋航圖機,配備超寬視角 IPS 螢幕,支援 Garmin Navionics+ 航海圖資選項與多種聲納技術,提供清晰視野與精準水下資訊,打造進階航海體驗。 GPSMAP 9500 Black Box 將符合 HDCP 標準的第三方顯示器連接到我們高級黑盒子系統。享受頂級的處理能力、廣泛的高速網路功能以及完整的整合選項 ECHOMAP Ultra 2 Series 身為一位釣魚愛好者,你想要一台具備頂級探魚功能、反應迅速、畫面超清晰、搭載 12 吋 IPS 觸控螢幕、按鍵控制、支援 LiveScope 聲納及更多功能的航圖機。這是您絕佳選擇。 GPSMAP 9000 Series 一款具備 4K 解析度及先進技術的多功能航圖機。採用玻璃鏡面、頂級設計和用料,滿足您的需求。 ECHOMAP UHD2 Touch 系列 有了 ECHOMAP UHD2 航圖機,你將享有領先業界的聲納技術及海圖導航功能,高解析度螢幕支援觸控同時也保留實體按鍵控制,讓你對當地水域瞭若指掌 ECHOMAP UHD 2 Keyed 俗話說當地人最在行。但說這句話的人顯然沒用過 ECHOMAP UHD2 5吋的航儀捕過魚,它提供了清晰的聲納和地圖顯示 STRIKER Vivid series STRIKER Cast 便攜式無線魚探儀 NT$ 4,490 GPSMAP x3 Series 流線型設計、強大處理能力及進階的 IPS 顯示螢幕,這款先進的 7”、9”、12” 或 16” 航圖機可以無縫整合至您的 Garmin 航海系統。 CR 1522 CS 1522 ECHOMAP Ultra 102sv GPSMAP 8400 Series GPSMAP 8600 Series GPSMAP 8400xsv Series GPSMAP 8600xsv Series AQUAMAP 1222 AQUAMAP 1222xs AQUAMAP 1022xs AQUAMAP 1022 FF 650 GPS GPSMAP 585 Plus FF 350 Plus GPSMAP® 1222xsv GPSMAP® 1222 GPSMAP® 1022 GPSMAP® 1022xsv Garmin Quickdraw Contours Garmin Quickdraw Contours 最多比較 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 22:10:35 - INFO - main - [url_processor.py:253] - process_url - 更新 UI 審核進度(URL ID=72):已完成 21/21 個網址 2025-10-13 22:10:35 - INFO - main - [url_processor.py:266] - process_url - UI審核: 開始審核主頁面: https://www.garmin.com.tw/ 2025-10-13 22:10:35 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2029 字符 2025-10-13 22:10:35 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:10:41 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:10:52 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:11:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:11:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:11:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:11:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 192.1MB, CPU 0.0% 2025-10-13 22:11:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:11:09 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:11:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:11:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:11:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:11:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:11:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:11:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:11:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:11:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:11:14 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:11:25 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:11:36 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:11:48 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:11:48 - 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 22:11:48 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 73.071秒 2025-10-13 22:11:48 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 840 字符, 總耗時: 73.226秒 2025-10-13 22:11:48 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:發現違規內容:「Venu 4 系列 GPS 智慧腕錶 進階健康與健身 GPS 智慧手錶,配備明亮多彩的AMOLED螢幕、內建手電筒,以及豐富的健身、健康與智慧功能。」;「... 2025-10-13 22:11:48 - WARNING - main - [url_processor.py:303] - process_url - UI審核: 主頁面審核不通過: https://www.garmin.com.tw/ 2025-10-13 22:11:48 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 1/20: https://www.garmin.com.tw 2025-10-13 22:11:48 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2029 字符 2025-10-13 22:11:48 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:11:58 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:12:09 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:12:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:12:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:12:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:12:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:12:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:12:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:12:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:12:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:12:21 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:12:31 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:12:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:12:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:12:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:12:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:12:42 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:12:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:13:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:13:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:13:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:13:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:13:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:13:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:13:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:13:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:13:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:13:15 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:13:26 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:13: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 22:13:36 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 107.785秒 2025-10-13 22:13:36 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 580 字符, 總耗時: 107.836秒 2025-10-13 22:13:36 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:Venu 4 系列 GPS 智慧腕錶「…豐富的健身、健康與智慧功能。」;Instinct 3 – AMOLED 本我系列 GPS 智慧腕錶「…支援全天候健... 2025-10-13 22:13:36 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw 2025-10-13 22:13:36 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 2/20: https://www.garmin.com.tw/products/wearables/?cat=trail-running 2025-10-13 22:13:36 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4850 字符 2025-10-13 22:13:36 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:13:37 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:13:48 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:13:59 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:14:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:14:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:14:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:14:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:14:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:14:10 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:14:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:14:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:14:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:14:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:14:21 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:14:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:14:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:14:53 - 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 22:14:53 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 76.868秒 2025-10-13 22:14:53 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 441 字符, 總耗時: 76.918秒 2025-10-13 22:14:53 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:發現違規內容:「fēnix 8 Pro – 51 mm, MicroLED 全方位戶外進階GPS智慧腕錶 NT$ 62,990」「內建行動網路及衛星通訊的 inReach... 2025-10-13 22:14:53 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/wearables/?cat=trail-running 2025-10-13 22:14:53 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 3/20: https://www.garmin.com.tw/careers/ 2025-10-13 22:14:53 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1316 字符 2025-10-13 22:14:53 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:14:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:15:05 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:15:07 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:15:07 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 14.357秒 2025-10-13 22:15:07 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 39 字符, 總耗時: 14.407秒 2025-10-13 22:15:07 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過... 2025-10-13 22:15:07 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://www.garmin.com.tw/careers/ 2025-10-13 22:15:07 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 4/20: https://www.garmin.com.tw/minisite/approach/ 2025-10-13 22:15:07 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4021 字符 2025-10-13 22:15:07 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:15:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:15:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:15:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:15:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:15:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:15:17 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:15:27 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:15:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:15:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:15:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:15:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:15:38 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:15:49 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:00 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:16:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:16:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:16:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:16:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:16:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:16:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:16:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:16:11 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:22 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:44 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:55 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:16:58 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:16:58 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 110.969秒 2025-10-13 22:16:58 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 540 字符, 總耗時: 111.020秒 2025-10-13 22:16:58 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容: - 「風向風速資訊 在錶面顯示所在地的風向風速資訊 ( 需配對 Garmin Golf app )。Approach S70」 - 「與相容 Garmi... 2025-10-13 22:16:58 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/minisite/approach/ 2025-10-13 22:16:58 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 5/20: https://www.garmin.com.tw/company/about/ 2025-10-13 22:16:58 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 8666 字符 2025-10-13 22:16:58 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:17:06 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:17:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:17:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:17:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:17:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:17:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:17:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:17:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:17:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:17:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:17:17 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:17:28 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:17:39 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:17:43 - 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 22:17:43 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 45.326秒 2025-10-13 22:17:43 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 39 字符, 總耗時: 45.380秒 2025-10-13 22:17:43 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過... 2025-10-13 22:17:43 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://www.garmin.com.tw/company/about/ 2025-10-13 22:17:43 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 6/20: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 2025-10-13 22:17:43 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1316 字符 2025-10-13 22:17:43 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:17:50 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:18:01 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:18:09 - 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 22:18:09 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 25.283秒 2025-10-13 22:18:09 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 40 字符, 總耗時: 25.337秒 2025-10-13 22:18:09 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過... 2025-10-13 22:18:09 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://www.garmin.com.tw/products/marine-cartography/?cat=third-party-marine-maps 2025-10-13 22:18:09 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 7/20: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 2025-10-13 22:18:09 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 3256 字符 2025-10-13 22:18:09 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:18:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:18:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:18:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:18:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:18:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:18:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:18:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:18:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:18:12 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:18:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:18:34 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:18:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:18:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:18:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:18:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:18:45 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:18:56 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:19:01 - 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 22:19:01 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 51.985秒 2025-10-13 22:19:01 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 638 字符, 總耗時: 52.035秒 2025-10-13 22:19:01 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: - 發現違規內容:「Fusion Apollo MS-RA800 Marine Stereo 頂級觸控式音響系統,內建 Wi-Fi 連線功能。」此內容違反了規則2(條件... 2025-10-13 22:19:01 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/onthewater/?cat=fusion-audio-entertainment 2025-10-13 22:19:01 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 8/20: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 2025-10-13 22:19:01 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4646 字符 2025-10-13 22:19:01 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:19:07 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:19:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:19:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:19:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:19:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:19:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:19:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:19:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:19:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:19:18 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:19:29 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:19:40 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:19:51 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:20:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:20:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:20:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:20:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:20:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:20:08 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:20:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:20:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:20:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:20:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:20:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:20:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:20:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:20:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:20:24 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:20:32 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:20:32 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 90.999秒 2025-10-13 22:20:32 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 405 字符, 總耗時: 91.050秒 2025-10-13 22:20:32 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:「支援心電圖App手錶 14」。此內容違反了規則2(條件式允許-醫療器材):具心電圖功能之智慧錶屬醫療器材,頁面須揭露衛福部醫療器材許可證與檢驗標章;本頁... 2025-10-13 22:20:32 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/wearables/?cat=activity_tracking 2025-10-13 22:20:32 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 9/20: https://www.garmin.com.tw/products/wearables/?cat=ecg 2025-10-13 22:20:32 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 3394 字符 2025-10-13 22:20:32 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:20:35 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:20:46 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:20:57 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:21:08 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:21:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:21:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:21:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:21:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:21:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:21:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:21:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:21:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:21:19 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:21:28 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:21:28 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 55.972秒 2025-10-13 22:21:28 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 649 字符, 總耗時: 56.022秒 2025-10-13 22:21:28 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:支援心電圖App手錶 只需 30 秒,隨時隨地記錄你的心律,並檢查心房顫動 (AFib) 或正常竇性心律的跡象。 台灣國際航電股份有限公司 “台灣國際航電... 2025-10-13 22:21:28 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/wearables/?cat=ecg 2025-10-13 22:21:28 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 10/20: https://www.garmin.com.tw/products/wearables/?cat=music 2025-10-13 22:21:28 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 6594 字符 2025-10-13 22:21:28 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:21:30 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:21:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:21:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:21:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:21:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:21:41 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:21:51 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:22:01 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:22:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:22:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:22:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:22:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:22:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:22:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:22:11 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:22:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:22:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:22: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 22:22:20 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 52.374秒 2025-10-13 22:22:20 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 735 字符, 總耗時: 52.428秒 2025-10-13 22:22:20 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:[NEW fēnix 8 Pro MicroLED 全方位戶外進階GPS智慧腕錶 極致明亮 MicroLED 螢幕,內建行動網路及衛星通訊的 inReac... 2025-10-13 22:22:20 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/wearables/?cat=music 2025-10-13 22:22:20 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 11/20: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 2025-10-13 22:22:20 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 10269 字符 2025-10-13 22:22:20 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:22:21 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:22:31 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:22:41 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:22:51 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:23:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:23:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:23:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:23:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:23:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:23:10 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:23:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:23:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:23:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:23:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:23:12 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:23:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:23:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:23:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:23:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:23: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 22:23:13 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 52.688秒 2025-10-13 22:23:13 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 403 字符, 總耗時: 52.739秒 2025-10-13 22:23:13 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:發現違規內容:「NEW fēnix 8 Pro - MicroLED 是一款全方位戶外進階智慧手錶,極致明亮的MicroLED螢幕,為全球最亮的智慧手錶,搭載衛星通訊及行... 2025-10-13 22:23:13 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/wearables/?cat=garmin-pay 2025-10-13 22:23:13 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 12/20: https://www.garmin.com.tw/products/onthewater/?cat=sailing 2025-10-13 22:23:13 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2669 字符 2025-10-13 22:23:13 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:23:22 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:23:32 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:23:42 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:23:52 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:24:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:24:08 - 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 22:24:08 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 55.181秒 2025-10-13 22:24:08 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 450 字符, 總耗時: 55.234秒 2025-10-13 22:24:08 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:「無線電通訊 10」「VHF 215 AIS Marine Radio」「AIS™ 800」「GMR 18 HD3」「GMR xHD3 Radar 系列」... 2025-10-13 22:24:08 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/onthewater/?cat=sailing 2025-10-13 22:24:08 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 13/20: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 2025-10-13 22:24:08 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1660 字符 2025-10-13 22:24:08 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:24:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:24:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:24:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:24:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:24:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:24:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:24:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:24:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:24:12 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:24:22 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:24:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:24:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:24:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:24:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:24:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:24:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:24:53 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:25:03 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.10 秒,結果: 0 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:25:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:25:12 - 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 22:25:12 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 63.768秒 2025-10-13 22:25:12 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 481 字符, 總耗時: 63.819秒 2025-10-13 22:25:12 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容: 「Index S2 系列 Wi-Fi智慧多功能體脂計 智慧體脂計是一款連接 Wi-Fi 的體脂計,可透過易於閱讀的彩色顯示螢幕更全面地了解您的健康狀況 ... 2025-10-13 22:25:12 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/intosports/?cat=scales-monitors 2025-10-13 22:25:12 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 14/20: https://www.garmin.com.tw/products/intosports/?cat=cycling 2025-10-13 22:25:12 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 5693 字符 2025-10-13 22:25:12 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:25:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:25:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:25:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:25:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:25:13 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:25:23 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:25:33 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:25:43 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:25:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:26:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:26:06 - 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 22:26:06 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 54.044秒 2025-10-13 22:26:06 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 317 字符, 總耗時: 54.095秒 2025-10-13 22:26:06 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:Garmin藉由ANT+和藍牙技術,實現無縫連接您的車錶、車燈與後視雷達。Varia RVR315 後視雷達 NT$ 4,990 了解更多;Edge 85... 2025-10-13 22:26:06 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/intosports/?cat=cycling 2025-10-13 22:26:06 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 15/20: https://www.garmin.com.tw/products/apps/ 2025-10-13 22:26:06 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1541 字符 2025-10-13 22:26:06 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:26:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:26:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:26:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:26:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:26:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:26:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:26:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:26:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:26:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:26:14 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:26:24 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:26:34 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:26:44 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:26:52 - 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 22:26:52 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 46.037秒 2025-10-13 22:26:52 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 192 字符, 總耗時: 46.088秒 2025-10-13 22:26:52 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 最終結論:審核通過 補充提示(非違規):頁面提及「Garmin Sports線上訓練營課程豐富,下載訓練計畫傳送至Garmin跑錶,佩戴... 2025-10-13 22:26:52 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://www.garmin.com.tw/products/apps/ 2025-10-13 22:26:52 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 16/20: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 2025-10-13 22:26:52 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4458 字符 2025-10-13 22:26:52 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:26:54 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:27:04 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:27:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:27:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:27:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:27:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:27:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:27:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:27:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:27:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:27:15 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:27:25 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:27:35 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:27:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:27:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:27:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:27:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:27:45 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:27:55 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:27:55 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 62.268秒 2025-10-13 22:27:55 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 499 字符, 總耗時: 62.319秒 2025-10-13 22:27:55 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:「支援心電圖App手錶 14」。此內容違反了規則2(條件式允許-醫療器材):涉及醫療器材之產品須具衛福部許可證與檢驗標章並於頁面揭露;本頁未揭露相關許可證... 2025-10-13 22:27:55 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/wearables/?cat=fashion-smartwatches 2025-10-13 22:27:55 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 17/20: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 2025-10-13 22:27:55 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1344 字符 2025-10-13 22:27:55 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:27:55 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:28:05 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:28:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:28:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:28:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:28:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:28:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:28:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:28:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:28:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:28:15 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:28:23 - 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 22:28:23 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 28.357秒 2025-10-13 22:28:23 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 254 字符, 總耗時: 28.407秒 2025-10-13 22:28:23 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2: 發現違規內容:「無線電通訊 10」「雷達 7」「GMR 18 HD+ 圓頂雷達」「GMR Fantom 24 圓頂雷達」「GMR Fantom 18 圓頂雷達」。此內容... 2025-10-13 22:28:23 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/onthewater/?cat=commercial_fishing 2025-10-13 22:28:23 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 18/20: https://www.garmin.com.tw/products/ontheroad/?cat=automotive 2025-10-13 22:28:23 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1421 字符 2025-10-13 22:28:23 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:28:25 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:28:36 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:28:46 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:29:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:29:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:29:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:29:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:29:07 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:29:07 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 44.019秒 2025-10-13 22:29:07 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 35 字符, 總耗時: 44.069秒 2025-10-13 22:29:07 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 審核通過... 2025-10-13 22:29:07 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://www.garmin.com.tw/products/ontheroad/?cat=automotive 2025-10-13 22:29:07 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 19/20: https://www.garmin.com.tw/news/newscenter/ 2025-10-13 22:29:07 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1409 字符 2025-10-13 22:29:07 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:29:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:29:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:29:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:29:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:29:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:29:35 - 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 22:29:35 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 28.332秒 2025-10-13 22:29:35 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 34 字符, 總耗時: 28.383秒 2025-10-13 22:29:35 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:無違規內容 規則3:無違規內容 審核通過... 2025-10-13 22:29:35 - INFO - main - [url_processor.py:356] - process_url - UI審核: 子頁面審核通過: https://www.garmin.com.tw/news/newscenter/ 2025-10-13 22:29:35 - INFO - main - [url_processor.py:315] - process_url - UI審核: 開始審核子頁面 20/20: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 2025-10-13 22:29:35 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2242 字符 2025-10-13 22:29:35 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:30:11 - 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 22:30:11 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 35.680秒 2025-10-13 22:30:11 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 260 字符, 總耗時: 35.731秒 2025-10-13 22:30:11 - INFO - ContentAnalyzer - [analyzer.py:875] - check_rules - Rules check summary: 規則1:無違規內容 規則2:發現違規內容:「無線電通訊 10」「雷達 7」「STRIKER Cast 便攜式無線魚探儀 NT$ 4,490」。此內容違反了規則2(條件式允許):電信管制射頻器材須取得... 2025-10-13 22:30:11 - WARNING - main - [url_processor.py:354] - process_url - UI審核: 子頁面審核不通過: https://www.garmin.com.tw/products/onthewater/?cat=chartplotters_sonar 2025-10-13 22:30:11 - INFO - main - [url_processor.py:376] - process_url - 開始判斷主頁面購物車功能 2025-10-13 22:30:11 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:11 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2029 字符 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:30:11 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:30:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:30:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:30:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:30:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:30:19 - 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 22:30:19 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.815秒 2025-10-13 22:30:19 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.872秒 2025-10-13 22:30:19 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:19 - INFO - main - [url_processor.py:379] - process_url - 主頁面購物車判斷: 有購物車功能 2025-10-13 22:30:19 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 1/20 購物車功能 2025-10-13 22:30:19 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:19 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2029 字符 2025-10-13 22:30:19 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:23 - 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 22:30:23 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 4.199秒 2025-10-13 22:30:23 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 4.250秒 2025-10-13 22:30:23 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:23 - INFO - main - [url_processor.py:390] - process_url - 子頁面 1 購物車判斷: 有購物車功能 2025-10-13 22:30:23 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 2/20 購物車功能 2025-10-13 22:30:23 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:23 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4850 字符 2025-10-13 22:30:23 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:29 - 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 22:30:29 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.623秒 2025-10-13 22:30:29 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.673秒 2025-10-13 22:30:29 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:29 - INFO - main - [url_processor.py:390] - process_url - 子頁面 2 購物車判斷: 有購物車功能 2025-10-13 22:30:29 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 3/20 購物車功能 2025-10-13 22:30:29 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:29 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1316 字符 2025-10-13 22:30:29 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:30:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:30:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:30:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.4MB, CPU 0.0% 2025-10-13 22:30:37 - 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 22:30:37 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 8.081秒 2025-10-13 22:30:37 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 8.131秒 2025-10-13 22:30:37 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:37 - INFO - main - [url_processor.py:390] - process_url - 子頁面 3 購物車判斷: 有購物車功能 2025-10-13 22:30:37 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 4/20 購物車功能 2025-10-13 22:30:37 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:37 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4021 字符 2025-10-13 22:30:37 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:44 - 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 22:30:44 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.986秒 2025-10-13 22:30:44 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.036秒 2025-10-13 22:30:44 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:44 - INFO - main - [url_processor.py:390] - process_url - 子頁面 4 購物車判斷: 有購物車功能 2025-10-13 22:30:44 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 5/20 購物車功能 2025-10-13 22:30:44 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:44 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 8666 字符 2025-10-13 22:30:44 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:49 - 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 22:30:49 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.004秒 2025-10-13 22:30:49 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.054秒 2025-10-13 22:30:49 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:49 - INFO - main - [url_processor.py:390] - process_url - 子頁面 5 購物車判斷: 有購物車功能 2025-10-13 22:30:49 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 6/20 購物車功能 2025-10-13 22:30:49 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:49 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1316 字符 2025-10-13 22:30:49 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:30:56 - 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 22:30:56 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.411秒 2025-10-13 22:30:56 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 6.461秒 2025-10-13 22:30:56 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:30:56 - INFO - main - [url_processor.py:390] - process_url - 子頁面 6 購物車判斷: 有購物車功能 2025-10-13 22:30:56 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 7/20 購物車功能 2025-10-13 22:30:56 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:30:56 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 3256 字符 2025-10-13 22:30:56 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:01 - 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 22:31:01 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.823秒 2025-10-13 22:31:01 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.874秒 2025-10-13 22:31:01 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:01 - INFO - main - [url_processor.py:390] - process_url - 子頁面 7 購物車判斷: 有購物車功能 2025-10-13 22:31:01 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 8/20 購物車功能 2025-10-13 22:31:01 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:01 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4646 字符 2025-10-13 22:31:02 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:07 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:31:07 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.716秒 2025-10-13 22:31:07 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.765秒 2025-10-13 22:31:07 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:07 - INFO - main - [url_processor.py:390] - process_url - 子頁面 8 購物車判斷: 有購物車功能 2025-10-13 22:31:07 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 9/20 購物車功能 2025-10-13 22:31:07 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:07 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 3394 字符 2025-10-13 22:31:07 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:31:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:31:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:31:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:31:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:31:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:31:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:31:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:31:19 - 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 22:31:19 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 11.786秒 2025-10-13 22:31:19 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 11.837秒 2025-10-13 22:31:19 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:19 - INFO - main - [url_processor.py:390] - process_url - 子頁面 9 購物車判斷: 有購物車功能 2025-10-13 22:31:19 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 10/20 購物車功能 2025-10-13 22:31:19 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:19 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 6594 字符 2025-10-13 22:31:19 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:25 - 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 22:31:25 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.199秒 2025-10-13 22:31:25 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 6.249秒 2025-10-13 22:31:25 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:25 - INFO - main - [url_processor.py:390] - process_url - 子頁面 10 購物車判斷: 有購物車功能 2025-10-13 22:31:25 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 11/20 購物車功能 2025-10-13 22:31:25 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:25 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 10269 字符 2025-10-13 22:31:25 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:32 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:31:32 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.010秒 2025-10-13 22:31:32 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.060秒 2025-10-13 22:31:32 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:32 - INFO - main - [url_processor.py:390] - process_url - 子頁面 11 購物車判斷: 有購物車功能 2025-10-13 22:31:32 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 12/20 購物車功能 2025-10-13 22:31:32 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:32 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2669 字符 2025-10-13 22:31:32 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:40 - 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 22:31:40 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.580秒 2025-10-13 22:31:40 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.630秒 2025-10-13 22:31:40 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:40 - INFO - main - [url_processor.py:390] - process_url - 子頁面 12 購物車判斷: 有購物車功能 2025-10-13 22:31:40 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 13/20 購物車功能 2025-10-13 22:31:40 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:40 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1660 字符 2025-10-13 22:31:40 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:49 - 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 22:31:49 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 9.149秒 2025-10-13 22:31:49 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 9.204秒 2025-10-13 22:31:49 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:49 - INFO - main - [url_processor.py:390] - process_url - 子頁面 13 購物車判斷: 有購物車功能 2025-10-13 22:31:49 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 14/20 購物車功能 2025-10-13 22:31:49 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:49 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 5693 字符 2025-10-13 22:31:49 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:31:56 - 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 22:31:56 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.036秒 2025-10-13 22:31:56 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.087秒 2025-10-13 22:31:56 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:31:56 - INFO - main - [url_processor.py:390] - process_url - 子頁面 14 購物車判斷: 有購物車功能 2025-10-13 22:31:56 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 15/20 購物車功能 2025-10-13 22:31:56 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:31:56 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1541 字符 2025-10-13 22:31:56 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:32:04 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:32:04 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 7.605秒 2025-10-13 22:32:04 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 7.656秒 2025-10-13 22:32:04 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:32:04 - INFO - main - [url_processor.py:390] - process_url - 子頁面 15 購物車判斷: 有購物車功能 2025-10-13 22:32:04 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 16/20 購物車功能 2025-10-13 22:32:04 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:32:04 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 4458 字符 2025-10-13 22:32:04 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:32:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:32:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:32:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 1/5, 隊列大小 0, 總處理任務 0, 記憶體 193.6MB, CPU 0.0% 2025-10-13 22:32:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.5MB, CPU 0.0% 2025-10-13 22:32:09 - 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 22:32:09 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.209秒 2025-10-13 22:32:09 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.259秒 2025-10-13 22:32:09 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:32:09 - INFO - main - [url_processor.py:390] - process_url - 子頁面 16 購物車判斷: 有購物車功能 2025-10-13 22:32:09 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 17/20 購物車功能 2025-10-13 22:32:09 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:32:09 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1344 字符 2025-10-13 22:32:09 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:32:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:32:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:32:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:32:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:32:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:32:14 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:32:14 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 5.015秒 2025-10-13 22:32:14 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 5.065秒 2025-10-13 22:32:14 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:32:14 - INFO - main - [url_processor.py:390] - process_url - 子頁面 17 購物車判斷: 有購物車功能 2025-10-13 22:32:14 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 18/20 購物車功能 2025-10-13 22:32:14 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:32:14 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1421 字符 2025-10-13 22:32:14 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:32:21 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:32:21 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 6.402秒 2025-10-13 22:32:21 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 6.452秒 2025-10-13 22:32:21 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:32:21 - INFO - main - [url_processor.py:390] - process_url - 子頁面 18 購物車判斷: 有購物車功能 2025-10-13 22:32:21 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 19/20 購物車功能 2025-10-13 22:32:21 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:32:21 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 1409 字符 2025-10-13 22:32:21 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:32:26 - INFO - httpx - [_client.py:1025] - _send_single_request - HTTP Request: POST https://ecpayopenaieus2.openai.azure.com/openai/deployments/gpt-5/chat/completions?api-version=2024-12-01-preview "HTTP/1.1 200 OK" 2025-10-13 22:32:26 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 4.923秒 2025-10-13 22:32:26 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 4.973秒 2025-10-13 22:32:26 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:32:26 - INFO - main - [url_processor.py:390] - process_url - 子頁面 19 購物車判斷: 有購物車功能 2025-10-13 22:32:26 - INFO - main - [url_processor.py:387] - process_url - 開始判斷子頁面 20/20 購物車功能 2025-10-13 22:32:26 - INFO - ContentAnalyzer - [analyzer.py:930] - check_shopping_cart - 開始購物車功能判斷 2025-10-13 22:32:26 - INFO - ContentAnalyzer - [analyzer.py:949] - get_result_from_AI - 準備使用 AI 分析文本, 文本長度: 2242 字符 2025-10-13 22:32:26 - INFO - ContentAnalyzer - [analyzer.py:999] - get_result_from_AI - 發送請求到 Azure OpenAI, 模型: gpt-5, 溫度: 0.2, 最大標記數: 16384 2025-10-13 22:32:35 - 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 22:32:35 - INFO - ContentAnalyzer - [analyzer.py:1023] - get_result_from_AI - 收到 Azure OpenAI 響應, 耗時: 9.515秒 2025-10-13 22:32:35 - INFO - ContentAnalyzer - [analyzer.py:1031] - get_result_from_AI - 成功獲取 AI 分析結果, 響應長度: 6 字符, 總耗時: 9.565秒 2025-10-13 22:32:35 - INFO - ContentAnalyzer - [analyzer.py:932] - check_shopping_cart - 購物車判斷結果: 有購物車功能 2025-10-13 22:32:35 - INFO - main - [url_processor.py:390] - process_url - 子頁面 20 購物車判斷: 有購物車功能 2025-10-13 22:32:35 - INFO - main - [url_processor.py:402] - process_url - 最終購物車判斷結果: 有購物車功能 (檢查了 21 個頁面) 2025-10-13 22:32:35 - WARNING - main - [url_processor.py:427] - process_url - 審核不通過:15 個頁面失敗,0 個頁面被模型拒審(已忽略) 2025-10-13 22:32:35 - INFO - main - [url_processor.py:525] - process_url - URL ID 72 是 UI 提交,使用 URL 記錄中的聯絡資訊進行驗證 2025-10-13 22:32:35 - WARNING - main - [url_processor.py:543] - process_url - UI審核(URL ID=72):身份驗證失敗,網頁上未找到聯絡資訊 2025-10-13 22:32:36 - INFO - database - [database.py:505] - update_url_status - URL ID 72 状态已更新为 completed 2025-10-13 22:32:36 - INFO - main - [url_processor.py:609] - process_url - URL ID 72 分析完成,結果: fail, API驗證: False 2025-10-13 22:32:36 - INFO - main - [url_processor.py:634] - process_url - 工作線程 #1 完成處理 URL ID: 72 2025-10-13 22:33:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:33:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:33:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:33:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:33:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:33:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:33:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:33:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:33:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:33:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:33:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 193.8MB, CPU 0.0% 2025-10-13 22:33:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.5MB, CPU 0.0% 2025-10-13 22:34:02 - INFO - main - [web_routes.py:186] - result - UI 提交 - URL ID 72, UID: d6wu7ro9c7, 進度: 21/21 2025-10-13 22:34:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:34:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:34:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:34:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:34:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:34:11 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:34:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:34:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:35:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:35:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:35:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 193.8MB, CPU 0.0% 2025-10-13 22:35:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.5MB, CPU 0.0% 2025-10-13 22:35:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:35:11 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:35:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:35:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:35:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:35:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:35:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:35:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:35:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:36:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:36:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:36:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:36:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:36:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:36:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:36:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:36:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:36:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:36:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:36:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 193.8MB, CPU 0.0% 2025-10-13 22:36:37 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.5MB, CPU 0.0% 2025-10-13 22:37:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:37:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:37:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:37:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:37:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:37:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:37:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:37:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:38:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:38:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 124.8MB, CPU 0.0% 2025-10-13 22:38:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 193.8MB, CPU 0.0% 2025-10-13 22:38:07 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 1, 記憶體 172.5MB, CPU 0.0% 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:38:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:38:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:38:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:38:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:38:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:12 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:12 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:13 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:13 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:29 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_22.log,路徑: Log/20251013_22.log 2025-10-13 22:39:29 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 22:39:29 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 22:39:29 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_22.log,路徑: Log/20251013_22.log 2025-10-13 22:39:29 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 22:39:29 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 22:39:29 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_22.log,路徑: Log/20251013_22.log 2025-10-13 22:39:29 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 22:39:29 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 22:39:29 - INFO - root - [logging_config.py:130] - setup_logging - 日誌系統初始化完成,小時日誌檔案: 20251013_22.log,路徑: Log/20251013_22.log 2025-10-13 22:39:29 - INFO - main - [main.py:35] - <module> - 應用啟動:正在初始化... 2025-10-13 22:39:29 - INFO - main - [main.py:46] - <module> - CSRF 防護已啟用 2025-10-13 22:39:31 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 22:39:31 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 22:39:31 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 22:39:31 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 22:39:31 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 22:39:31 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.81GB 2025-10-13 22:39:31 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 22:39:31 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 22:39:31 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 22:39:31 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 22:39:31 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 22:39:31 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 22:39:31 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 22:39:31 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 22:39:31 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 22:39:31 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 22:39:31 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 22:39:31 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 22:39:31 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 22:39:31 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 22:39:31 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 22:39:31 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 22:39:31 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 22:39:31 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 22:39:31 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 22:39:31 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 22:39:32 - INFO - root - [crypto_utils.py:26] - <module> - 成功載入 pycryptodome 版本: 3.23.0 2025-10-13 22:39:32 - INFO - main - [main.py:130] - <module> - 已註冊 5 個 Blueprint 2025-10-13 22:39:32 - INFO - main - [main.py:229] - initialize_database - 應用啟動:正在初始化數據庫... 2025-10-13 22:39:32 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 22:39:32 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 22:39:32 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 22:39:32 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 22:39:32 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 22:39:32 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 22:39:32 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 22:39:32 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 22:39:32 - INFO - main - [main.py:233] - initialize_database - 數據庫表結構已創建 2025-10-13 22:39:32 - INFO - database - [database.py:212] - get_engine - 正在連接到資料庫... 2025-10-13 22:39:32 - INFO - database - [database.py:75] - calculate_pool_size - 系統資源:CPU 核心=2, 總記憶體=7.71GB, 可用記憶體=6.79GB 2025-10-13 22:39:32 - INFO - database - [database.py:101] - calculate_pool_size - 動態計算連接池配置:pool_size=6, max_overflow=9 2025-10-13 22:39:32 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 22:39:32 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 22:39:32 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 22:39:32 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 22:39:32 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 22:39:32 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 22:39:32 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 22:39:32 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 22:39:32 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 22:39:32 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 22:39:32 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 22:39:32 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 22:39:32 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 22:39:32 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 22:39:32 - INFO - database - [database.py:242] - get_engine - 資料庫連接測試成功 2025-10-13 22:39:32 - INFO - database - [database.py:246] - get_engine - 連接池初始健康狀態:True, 使用率:0.0% 2025-10-13 22:39:32 - INFO - database - [database.py:322] - init_db - 数据库初始化成功 2025-10-13 22:39:32 - INFO - main - [main.py:238] - initialize_database - 數據庫初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:56] - setup_app - 正在初始化应用程序组件... 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:64] - setup_app - 數據表已確認創建 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:72] - setup_app - 数据库初始化成功 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:41] - __init__ - 從環境變量獲取的 API 密鑰長度: 32 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:42] - __init__ - 環境變量中的所有變量: ['GPT41_API_KEY'] 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:54] - __init__ - 已成功加載 GPT4_API_KEY 2025-10-13 22:39:32 - INFO - ContentAnalyzer - [analyzer.py:73] - __init__ - Successfully imported AzureOpenAI module 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:80] - setup_app - 内容分析器初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:85] - setup_app - 已同步 content_analyzer 到 url_processor 模組 2025-10-13 22:39:32 - INFO - WebDriverInstanceManager - [webdriver_instance_manager.py:55] - __init__ - WebDriver實例管理器初始化完成,最大實例數: 3,隊列大小: 10 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:93] - setup_app - 网页抓取器初始化成功 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:101] - setup_app - 已同步全局變量到 url_processor 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:105] - setup_app - 已同步 web_scraper 到 helpers 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:110] - setup_app - 已同步全局變量到 request_processor 模組 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:112] - setup_app - ✅ 所有處理模組的全局變量同步完成 2025-10-13 22:39:32 - INFO - ThreadPoolManager - [thread_pool.py:67] - start - 啟動線程池,初始化 5 個工作線程 2025-10-13 22:39:32 - INFO - ThreadPoolManager - [thread_pool.py:80] - start - 線程池啟動完成 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:120] - setup_app - 线程池初始化成功 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:40] - start - 啟動任務調度器 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_requests',間隔 180 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'reset_stalled_urls',間隔 1800 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'clean_old_logs',間隔 7200 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'check_database_integrity',間隔 43200 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'perform_garbage_collection',間隔 14400 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'update_hourly_log_file',間隔 300 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'process_api_requests',間隔 60 秒,已啟用 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:181] - add_task - 已添加任務 'daily_audit_quality_check',間隔 21600 秒,已啟用 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:217] - setup_scheduled_tasks - 已設置每6小時審核品質檢查任務 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:222] - setup_scheduled_tasks - 定期任务设置完成 2025-10-13 22:39:32 - INFO - main - [app_initializer.py:129] - setup_app - 应用程序组件初始化完成 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:39:32 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_urls 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_urls' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:39:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:40:08 - 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 22:40:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:40:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:41:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:41:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.1MB, CPU 0.0% 2025-10-13 22:41:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.5MB, CPU 0.0% 2025-10-13 22:41:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:41:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:42:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:42:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 121.5MB, CPU 0.0% 2025-10-13 22:42:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:42:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:42:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:43:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:44:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:44:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:44:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.6MB, CPU 0.0% 2025-10-13 22:44:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:44:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:45:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:45:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:45:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:45:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:45:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:46:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:47:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:47:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:47:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:47:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.9MB, CPU 0.0% 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:47:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:48:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:48:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:48:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:48:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.9MB, CPU 0.0% 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:48:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:48:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:48:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:48:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:48:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:49:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:49:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:49:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:49:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:49:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:50:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:50:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:50:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:50:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:50:33 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:50:33 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:50:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:50:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:50:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:50:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:50:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:50:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:51:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:51:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:51:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:51:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:51:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:52:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:53:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:53:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:53:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:53:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:53:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:54:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:54:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:54:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:54:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.06 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.05 秒,結果: 0 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:54:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:55:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:56:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:56:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:56:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:56:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:56:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:57:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:57:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:57:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:57:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:57:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:58:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 22:59:01 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 22:59:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 22:59:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 22:59:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.07 秒,結果: 0 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:59:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:59:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:59:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.09 秒,結果: 0 2025-10-13 22:59:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 22:59:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'update_hourly_log_file' 執行完成,耗時 0.00 秒,結果: False 2025-10-13 22:59:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 22:59:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.08 秒,結果: 0 2025-10-13 23:00:31 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 23:00:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 23:00:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 23:00:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 23:00:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:00:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:00:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:00:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.03 秒,結果: 0 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:00:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:01:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:01:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:01:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:01:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:01:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:01:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:01:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:01:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:02:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 23:02:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 23:02:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 23:02:02 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 23:02:34 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:02:34 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:02:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:02:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:02:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:02:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:02:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:02:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:03:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.1MB, CPU 0.0% 2025-10-13 23:03:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.4MB, CPU 0.0% 2025-10-13 23:03:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 122.8MB, CPU 0.0% 2025-10-13 23:03:32 - INFO - ThreadPoolManager - [thread_pool.py:313] - _perform_health_check - 線程池健康檢查: 活躍線程 0/5, 隊列大小 0, 總處理任務 0, 記憶體 123.0MB, CPU 0.0% 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: reset_stalled_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'reset_stalled_requests' 執行完成,耗時 0.01 秒,結果: 0 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: process_api_requests 2025-10-13 23:03:35 - INFO - scheduler - [scheduler.py:134] - _execute_task_thread - 任務 'process_api_requests' 執行完成,耗時 0.02 秒,結果: 0 2025-10-13 23:04:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 23:04:35 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_22.log,新:20251013_23.log 2025-10-13 23:04:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 23:04:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 23:04:35 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_22.log,新:20251013_23.log 2025-10-13 23:04:35 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_22.log,新:20251013_23.log 2025-10-13 23:04:35 - INFO - scheduler - [scheduler.py:116] - _execute_task_thread - 執行任務: update_hourly_log_file 2025-10-13 23:04:35 - INFO - main - [app_initializer.py:347] - update_hourly_log_file - 檢測到小時變更,當前:20251013_22.log,新:20251013_23.log