> ## Content Index
> Fetch the complete content index at: https://blog.ipcol.cc/llms.txt
> Use this file to discover other available public pages before exploring further.

# Getting Data Is All Y0u Need
- URL: https://blog.ipcol.cc/getting-data-is-all-y0u-need/
- Published: 2026-08-08T11:52:26.000Z
- Updated: 2026-08-09T03:55:34.000Z
- Description: LOFTER Tracker--一個用於反演算法的作者訂閲機
- Author: 墨生白

> A: 「Christina呦! 我是Lofter的演算法，我猜你喜歡這個。」  
> B：「欸？你有这么高速運轉的演算法推送給我，那如果被`ST◼N`淹沒了那些我真的有關注的、很喜歡的作者該怎麽辦呢？」  
> A:「嗯...所以我發明了 **未来道具22号机**」

---

你可能也遇過這種情況：明明按了關注，幾週後卻在偶然點進作者主頁時，才發現對方早就更新了三篇作品、改了簡介，甚至悄悄換了名字。~~那一刻的心情大概和你在晚上打開扇貝單詞，百詞斬拼寫時打錯無數次單詞字母一樣揪心(?)~~  
於是我做了一個訂閲機，它不是全站資料挖掘機，也不是什麼「一鍵成為賽博千里眼」的神祕黑科技；它的用途很單純：**訂閲我自己已經關注、喜歡的公開作者，看看對方的公開主頁最近發生了什麼變化。**  
用法很簡單：指定一位想追蹤的 Lofter 作者，程式讀取其博客頁面，把這次看到的內容與上次留下的Cache比較，只輸出新增、減少與可見資料變化。它本身不假裝是自帶手機推播的 SaaS，但產生的精簡 JSON 很適合再接進自己的提醒流程。

---

### 這個工具到底會看什麼？

對指定作者的公開個人主頁，程式會分別整理六個區域：

- likes
- recommendations
- dynamics
- works (作品)
- following
- followers

並從中整理變量。每次成功同步只維護四個正式檔案：

| 檔案                          | 用途               |
| --------------------------- | ---------------- |
|                             |                  |
| cache/reactions.full.json   | 喜歡、推薦、動態、作品的詳細快取 |
| cache/following.full.json   | 關注與粉絲的詳細快取       |
| output/reactions.delta.json | 本輪內容類變化的精簡結果     |
| output/following.delta.json | 本輪關係類變化的精簡結果     |

內容類 output 只保留：

```text
post_name、publisher_name

```

關係類 output 只保留：

```text
name、id、bio

```

所以它不會因為某張縮圖網址更換CDN，就直接改變參數。穩定 ID 沒變、真正關心的可見欄位也沒變，就安靜待在角落，~~像還沒被點名上臺的後藤一里~~。

---

### 我踩過什麽坑

早期版本的基本想法是順序完整掃描所有頁面。但如果喜歡博主帖子數量很多，一次同步就可能跑上200+頁：時間長、資料大，也容易撞 `4009` 拒絕。

因此這個發佈版預設採用兩種掃描模式：

| 模式     | 指令          | 行為                                     |
| ------ | ----------- | -------------------------------------- |
| 日常近期掃描 | sync        | 每個分欄最多讀取{config::recent\_page\_limit}頁 |
| 完整掃描   | sync --full | 在 {config::max\_pages} 內讀取全部頁面         |

若某個分欄本來就不足 50 頁，普通同步仍然是完整掃描，可以正常確認新增、更新與移除。只有真的超過 50 頁時，才會進入「近期窗口」語義。

這裡最容易踩坑的地方是：**離開前 50 頁，不等於被刪除。**

假設一篇舊作品昨天還在第 50 頁，今天因為前面多了新內容，被擠到第 51 頁。程式本輪沒看見它，不能武斷地說作者取消喜歡或刪除了作品。這就像角色暫時離開鏡頭，不代表下一話要在遺照裡見面。

因此這個發佈版把變化分成：

- `added`：相對既有快取，首次觀察到的項目。
- `updated`：穩定 ID 相同，但關心的可見欄位改變。
- `removed`：只有完整掃描才能確認的真正移除。
- `left_recent_window`：離開近期窗口，可能只是滑到第 51 頁以後。
- `scope: "complete"`：本輪完整，有資格確認移除。
- `scope: "recent_window"`：本輪截斷，`removed` 必須保持空白。

---

### 實現原理：快照、差分與世界線

整體流程可以濃縮成五步：

1. 讀取並驗證設定，確認目標作者與 Cookie 狀態。
2. 取得作者公開資料與六個分欄。
3. 判斷每個分欄是完整結果，還是只覆蓋近期窗口。
4. 與上一份快照依穩定鍵比較，產生精簡差分。
5. 全部成功後，原子寫入更新四個正式 JSON。

---

# 配置和安裝

[訂閲機訂閲機.zip43 KBdownload-circle](https://blog.ipcol.cc/content/files/2026/08/---------.zip "Download")

`名称: 訂閲機.zip 大小: 44154 字节 : 43 KiB /SHA256: d1643d19553176cb54654da67bc3de0a0662ffa0c47f9f4a7266beb86f86dd70`

> 和我簽訂契約,成為魔法訂閲機![這裏應有圖片，無則忽略](https://img.remit.ee/api/file/BQACAgUAAyEGAASHRsPbAAEY0Zpqdw5FMEkb2jSDo4ijs1XuM0AWRAAC-icAAvmbuFcamUcyzl6HyT0E.jpg)吧

需要 Python 3.11 或更新版本。

Windows PowerShell：

```powershell
py -m venv .venv
.venv\Scripts\python -m pip install -e .
.venv\Scripts\python -m playwright install chromium --no-shell

```

Linux／macOS：

```bash
python3 -m venv .venv && .venv/bin/python -m pip install -e . && .venv/bin/python -m playwright install chromium --no-shell

```

接著在根目錄建立或編輯 `config.json`：

```json
{
  "target_id": "你想追蹤的作者 ID"
}

```

`target_id` 可以填純 ID、`作者ID.lofter.com`，或完整個人主頁網址。

**日常同步：**

```powershell
.venv\Scripts\python -m lofter_tracker sync

```

完整掃描：

```powershell
.venv\Scripts\python -m lofter_tracker sync --full

```

---

第一次需要登入時，程式會開啟 Chromium；你在瀏覽器內自行完成登入，程式只擷取 `.lofter.com` Cookie 供後續請求使用，不接觸密碼。已有有效 Cookie 時不會反覆開瀏覽器。

發佈版的速度與範圍預設值為：

```json
{
  "api": {
    "max_concurrency": 6,
    "reaction_max_concurrency": 2,
    "request_delay_seconds": 0.1,
    "persistent_connections": true,
    "reaction_page_size": 100,
    "works_page_size": 100,
    "relationship_page_size": 100,
    "relationship_post_count": 1,
    "max_pages": 1000
  },
  "scan": {
    "recent_page_limit": 50,
    "full_scan_every_runs": 0
  }
}

```

> 如果 `4009` 仍然反覆出現，先把 `reaction_max_concurrency` 降到 1，而不是一味重試。~~因爲進入中國的機械運轉太高速了~~

另外如果您不喜歡每次使用命令行輸入命令，可以在根目錄創建批處理文件輔助您快速更新訂閲，我將給予一些參考：

```bat
@echo off
cd /d "%~dp0"
".venv\Scripts\python.exe" -m lofter_tracker sync
pause

```

---

# 使用邊界：這是追更工具，不是賽博跟蹤狂養成器![這裏應有圖片，無則忽略](https://img.remit.ee/api/file/BQACAgUAAyEGAASHRsPbAAEY0Zpqdw5FMEkb2jSDo4ijs1XuM0AWRAAC-icAAvmbuFcamUcyzl6HyT0E.jpg)

這個專案使用的是 LOFTER 當前網頁／客戶端接口，**並非官方開放 API**，未來可能隨時改動。請低頻、克制地使用。

我的使用原則是：

- 只讀取作者已經公開展示的資料。
- 追蹤自己確實關注、喜歡、希望不漏更的作者。
- 不繞過隱私設定，不碰私密作品、草稿、私訊或密碼保護內容。
- 不把 Cookie、`config.json`、cache 或 output 隨壓縮包公開。

公開不等於「可毫無節制地搬運」。工具的目的，是幫自己整理關心的更新，不是替別人的創作做未經同意的鏡像站。能力邊界與使用邊界都寫清楚，才不會從「我想追更」一路滑坡成《心理測量者》外包監控員。

---

### 目前沒有什麼?(如無訂閲應也不會更新![這裏應有圖片，無則忽略](https://img.remit.ee/api/file/BQACAgUAAyEGAASHRsPbAAEY0Zpqdw5FMEkb2jSDo4ijs1XuM0AWRAAC-icAAvmbuFcamUcyzl6HyT0E.jpg))

- \[ \] 沒有穩定的接口
- \[ \] 只能串行追蹤一個 `target_id`
- \[ \] 它輸出差分 JSON 與終端摘要，本身不是手機推播服務

---

### 鸣谢

首先，感謝仍在 Lofter 上創作、整理與分享作品的作者們。這個工具存在的理由，不是資料本身，而是我真的不想漏掉那些值得等待的更新。

&

[IshtarTang／lofterSpider](https://github.com/IshtarTang/lofterSpider?ref=blog.ipcol.cc)：提供了 LOFTER 喜歡、推薦與個人主頁抓取的經驗。  
[SrakhiuMeow／lofter-getter](https://github.com/SrakhiuMeow/lofter-getter?ref=blog.ipcol.cc)：對 Android 客戶端接口、合集與內容保存方向做了大量探索。\~\~可是不知爲何被`4009`ban了

&

**感謝 Lofter給我的不加任何解釋的`4009`讓我收到了很多麻煩！😡**

---

### 結語：願喜歡的作者不再被演算法忽略

此訂閲機最開始是因爲`youlin365`老師的作品太好看了，所以我命令大家都去關注她!(并不敢命令）

---

這是我第一次純markdown寫作，希望讀者您斧正

我刻意增加了一些有助於閲讀的可愛説法或表情，如果讀者您不喜歡，請告訴我，我會改正

希望讀者您有別的建議，請告訴我，我會改正

希望讀者您關注我...