---
title: 反爬与浏览器辅助
lastUpdated: 2026-06-01
sidebar:
    order: 4
---

部分网络书源(典型如启用了 Cloudflare 的站点)会对**搜索**等端点弹出「安全验证 / Just a moment…」挑战页。普通 HTTP 请求拿不到内容,只能拿到挑战页。TRNovel 通过**复用你系统里已装的浏览器**来解这类挑战——能自动就自动,必要时请你点一下。

## 工作方式(cookie 烤箱)

```
普通请求 → 撞到挑战页(cf-mitigated: challenge)
   │
   ▼
启动系统浏览器(Chrome / Edge / Brave …)解挑战 → 拿到 cf_clearance
   │
   ▼
把 cf_clearance + 浏览器真实 UA 交回普通请求 → 之后照常快速抓取
```

浏览器只用来「解一次挑战、领一张通行证(`cf_clearance`)」,之后的抓取仍走普通快请求;通行证有效期内(通常 30 分钟以上)不再重复打开浏览器。**阅读链路(目录 / 正文 / 浏览)通常不受挑战影响,只有搜索等少数端点才会触发。**

## 可能需要点一下「确认您是真人」

Cloudflare 的挑战是自适应的:风险低时全自动解开,你几乎无感;风险高时会升级为一个**勾选框**「确认您是真人」。此时 TRNovel 会把浏览器窗口提到最前,请你**亲自点一下那个勾选框**(出于安全,程序不会、也不能替你点)。点完即继续。

使用**持久化的浏览器配置目录**(`~/.novel/browser-profile`)会随使用积累信任,让需要点击的情况越来越少。

## 开关与配置

- **用户授权(默认关闭)**:出于隐私考虑,TRNovel 不会擅自打开你的浏览器。需要你显式授权后才会启用浏览器辅助。
- **书源取页模式 `http.fetcher`**:
  - `auto`(默认):平时普通请求,撞到挑战才动用浏览器;
  - `reqwest`:永不打开浏览器,撞到挑战即视为该能力不可用;
  - `browser`:整站都用浏览器(适用于首个请求就被挑战、或整页由 JS 渲染的站点)。

是否真的打开浏览器 = **书源声明需要** ∧ **你已授权**。两者都满足、且系统装有 Chromium 系浏览器时才会启动。

## 解不开时怎么办

- 没装 Chromium 系浏览器(纯 Safari / Firefox),或未授权,或挑战超时:对应能力(如搜索)会**如实标记为暂不可用**,并建议你改用**分类浏览**来发现书籍——而不是静默失败。
- 用 `trn doctor <书源.json>` 体检时,被挑战的端点会显示「被反爬挑战拦截,需浏览器辅助或改用浏览」,而非笼统的失败。

## 诊断

```bash
trn doctor my-source.json     # 全流程体检,逐项 ✓/✗/○;被挑战端点给出精确提示
```
