情境:前篇圖片合併工具(最下方,其他提示詞發想運用二),偶有整個視窗截圖需求,但若以切換螢幕解析度又相當不方便(字型比例隨視窗內容每次截圖水準不均),所以同樣有請AGY神器協助生成完整螢幕截圖,生成後又發現截圖需求,有可能是AGY CLI視窗全量截圖需求;但也有可能是CHROME瀏覽器全視窗完整載圖需求。(只要向AI神器再下達PROMPT追加提示詞,如下: FullSnapShot.py 請協助將CHROME 執行中之視窗,執行 完整快照 )
FullSnapShot.py 預設行為永久定錨為**「截取目前 Antigravity CLI 視窗」**:
• 平日使用:直接執行 python FullSnapShot.py 或滑鼠雙擊 執行_FullSnapShot.bat,即自動鎖定當前最新的對話視窗進行長截圖!
• 網頁模式保留:僅在傳入 --chrome 或 --url <網址> 時才會切換至 Chrome 網頁長截圖模式。
FullSnapShot.py - Chrome 即時現況與手動執行長截圖生成器
options:
-h, --help show this help message and exit
--url URL 手動指定目標網址 (預設自動自 Chrome 檢索現況即時瀏覽分頁)
-m, --manual 手動輸入模式:在終端機提示輸入自訂網址
-l, --list 列出 Chrome 最近瀏覽之網頁清單供互動選取
--width WIDTH 截圖寬度 (預設: 1440)
--slice-height SLICE_HEIGHT 切片高度 (預設: 2400)
🖥️ 一、第一軌核心(預設行為):永久定錨「截取目前 Antigravity CLI 視窗」
當您直接執行 python FullSnapShot.py 或滑鼠雙擊 執行_FullSnapShot.bat 時,程式無須任何參數,預設鎖定目前互動中的 CLI 視窗。其運作經歷四個精密的工程階段:
1. 拒絕寫死 ID!自動嗅探當前活體對話(detect_current_conversation)
過去的痛點: 舊程式會將對話 ID 寫死在代碼中(如 CONV_ID = "d38abf7c...")。一旦開啟新對話,就必須手動修改代碼,否則永遠截取到舊紀錄。
程式一啟動就前往
~/.gemini/antigravity-cli/brain/ 目錄,過濾掉歷史封存庫 _archive,並實時檢測所有對話資料夾中 transcript_full.jsonl 的磁碟修改時間(mtime)。修改時間最新者,即為使用者當前視窗! 2. 重建真實終端機的「數位分身 (Digital Twin)」
程式將抽象的 JSONL 文本重構為極具質感的黑暗終端機實體:
- 視窗外框:精準模擬 macOS / Linux 終端之紅、黃、綠三顆控制圓鈕。
- 品牌定錨:視窗頂部輸出標誌性的
Antigravity CLI 1.4.3幾何 ASCII Banner 與模型資訊。 - 角色徽章:使用者發言掛載紫色
USER (Step N)徽章;AI 回覆掛載藍色ANTIGRAVITY (Step N)徽章。 - Markdown 語法解析:引入
marked.min.js,將 Markdown 原始碼、表格、代碼區塊語法高亮、Alert 引用框即時轉化為現代網頁元素。
3. 無損瓦片切片(Viewport Slicing Engine)
Playwright 無頭瀏覽器載入渲染好的 HTML 檔案,偵測當前終端總高度為 12,954 像素:
- 以固定
1440 x 2400視口向下步進滾動。 - 切片 01:Y=0 ~ 2400 (幾何 Banner 與 Q46 出題,瀏覽歷程一)
- 切片 02:Y=2400 ~ 4800 (Q46 作答判定與 原卷排雷)
- 切片 03:Y=4800 ~ 7200 (Q47 KNN 交叉驗證出題)
- 切片 04:Y=7200 ~ 9600 (視頻科學對位報告)
- 切片 05:Y=9600 ~ 12000 (Chrome 快照引擎架構歷程)
- 切片 06:Y=12000 ~ 12954 (視口自適應縮短至 954px 完美收尾)
4. 垂直無縫拼接與物理密碼學見證
Pillow 建立一張 1440 x 12954 的純黑底畫布,將 6 張切片無縫縫合,並進行物理 SHA-256 數位指紋認證:
Combined PNG: 1440 x 12954 px | 5.10 MB
🌐 二、第二軌模式(相容保留):Chrome 網頁長截圖模式
當您需要截取外部網頁時,只需加上參數(例如 python FullSnapShot.py --chrome 或 python FullSnapShot.py ZdNet),程式即刻切換為網頁長截圖專用引擎。本模式徹底擊破了兩大常見的網頁截圖陷阱:
1. 破解「永遠等不到的 Networkidle(網路閒置)」陷阱
陷阱本質: 部落格(如 WordPress home.blog)背後含有長輪詢廣告與追蹤腳本,若使用 wait_until="networkidle",瀏覽器會空等 30 秒直到超時崩潰。
wait_until="domcontentloaded"(只要 HTML 主結構就緒即可),搭配 2 秒實體緩衝,不論背景流量如何轉動,3 秒內極速安全通過!
2. 破解「滑鼠滑到才肯長出來」的懶加載(Lazy Loading)
陷阱本質: 現代網頁為節省流量,頁面下方的圖片在初載入時只有空白佔位符,直接截圖下半部全黑或全白。
window.scrollTo(0, 0))開始分片拍照。
3. 關鍵字智慧模糊配對(Smart Fuzzy Match)
支援以關鍵字直達分頁(如輸入 ZdNet),系統自動至 Chrome 資料庫搜尋並精確命中 https://japan.zdnet.com/,產出 9,619px 完整長截圖!
⚖️ 三、雙軌架構對比速查表
| 比較維度 | 預設模式:目前 CLI 視窗 | 輔助模式:Chrome 網頁長截圖 |
|---|---|---|
| 觸發方式 | python FullSnapShot.py(直接執行)或雙擊 執行_FullSnapShot.bat |
python FullSnapShot.py --chrome或 python FullSnapShot.py ZdNet |
| 目標資料來源 | 當前對話 transcript_full.jsonl |
指定 URL 或 Chrome 活動網址 |
| 視覺渲染引擎 | 專屬極黑終端機主題 + marked.js |
外部網站原生 CSS / JavaScript |
| 加載防護機制 | 本地端微秒級靜態 HTML 加載 | domcontentloaded + 整頁預滾動解鎖懶加載 |
| 主產出檔案 | FullSnapShot_Combined.png (12,954px) |
FullSnapShot_April_Combined.png (9,619px) |
| 核心應用場景 | 永久備份教練考紀錄、報告與系統對話 | 完整採集線上技術部落格、論文教學與長網頁 |
🎯 四、總結與最佳實踐
💜平日留存對話與教練考成果:滑鼠雙擊
執行_FullSnapShot.bat,它自動鎖定當前對話視窗;💜需要備份技術文章時:命令列帶上關鍵字(如
FullSnapShot.py ZdNet),它秒變專業網頁爬蟲長截圖神器!⚠️ 底層技術限制真相:
page.screenshot(full_page=True) 都會遭遇截斷或空白崩潰。視圖瓦片切片引擎(Viewport Slicing Engine)是解決此問題唯一的工業級標準!