更多: 网站统计
- 机器人与 AI 爬虫
- 流量来源、UTM 与广告点击 ID
- 机器人和 AI 爬虫会算进我的访客吗?
- TapCub 怎么识别机器人?
- AI 爬虫台账怎么读?
- 真人被标成机器人,怎么修正?
- TapCub 怎么判定一次访问的渠道?
- UTM 参数该怎么命名?
- TapCub 会追踪 gclid 这类广告点击 ID 吗?
- 自然搜索词为什么看着是空的?
- 怎么在图表上加标注?
- 流量骤降或激增时怎么收到提醒?
- 怎么定时发送统计报告?
- 怎么分享看板或报告?
- 怎么查看真实访客的 Core Web Vitals?
- 怎么找出网站上的 JavaScript 错误?
- 怎么实时查看网站访客?
- 怎么对比两个时间段?
- 怎么查看抓取健康和爬虫错误?
- 怎样找到访客在哪些页面离开网站?
- 本分类全部文章
简短回答
创建权限为「导入日志」(logs:write)的项目 API 密钥,把 combined 格式的日志行以 {"lines": [...]} POST 到 /api/v1/server/logs/import,每次最多 5,000 行。只保存判定为机器人的行,不跑 JavaScript 的爬虫会出现在机器人和抓取健康里;真人请求会被丢弃。
简短回答
创建权限为「导入日志」(logs:write)的 API 密钥,再把 Nginx 或 Apache combined 格式的日志行以 { "lines": [...] } POST 到 /api/v1/server/logs/import。TapCub 只保留判定为机器人的行,这样能看到不执行 JavaScript 的爬虫,以及状态码和响应时间。真人访问的行会被丢弃,访客数不受影响。
为什么要导入日志
页面脚本只看得到会执行 JavaScript 的机器人,也拿不到状态码。很多搜索和 AI 爬虫只抓 HTML、不跑脚本,而访问日志里每个请求都有。导入后:
- 网站统计 › 机器人 会包含从没跑过脚本的爬虫。
- 监测 › 抓取健康 的成功率会拆出 4xx 和 5xx;导入之前,脚本记录没有状态码,一律算成功。
1. 创建密钥
在 配置 › 设置 › API 密钥 创建一个绑定项目的密钥,权限选「导入日志」。只有 events:write 不够,没有绑定项目的用户级密钥会被拒绝。项目由密钥决定,不用另传项目编号。
2. 核对日志格式
只解析 combined 格式:IP、两个占位、方括号里的时间、请求行、三位状态码、字节数、带引号的来源和带引号的 User-Agent。末尾可选的耗时(秒)会换算成毫秒的响应时间。
203.0.113.8 - - [02/Oct/2026:08:01:02 +0800] "GET /robots.txt HTTP/1.1" 200 120 "-" "Googlebot/2.1" 0.012
时间按行里的时区偏移计算,月份必须是英文缩写。
3. 发送一批
示例:用 jq 和 curl 发送 Nginx 日志的最后 2,000 行。
tail -n 2000 /var/log/nginx/access.log \
| jq -R -s '{lines: split("\n") | map(select(length > 0))}' \
| curl -X POST "https://api.pathclue.com/api/v1/server/logs/import" \
-H "Authorization: Bearer wck_YOUR_KEY" \
-H "Content-Type: application/json" \
--data-binary @-
限制:每次最多 5,000 行,每行最多 4,000 字符,JSON 请求体不超过 2 MB。超出会直接拒绝,不会截断。可以定时运行(比如用 cron 每 10 分钟一次),并记下已经发过的位置,免得重复发送。
4. 看返回结果
{ "lines": 2000, "parsed": 1990, "accepted": 310, "skipped": 1680 }
| 字段 | 含义 |
|---|---|
lines | 发送的行数 |
parsed | 符合 combined 格式的行数 |
accepted | 判定为机器人并保存的行数 |
skipped | 解析成功但不是机器人的行数(parsed − accepted) |
示例里有 10 行格式不对,1,680 行是真人或未识别的流量。
常见问题
| 现象 | 原因 | 处理 |
|---|---|---|
| 返回 401 | 没带密钥,或密钥没有「导入日志」 | 新建带 logs:write 的项目密钥 |
parsed 比 lines 少 | 不是 combined 格式 | 把 log_format 改成 combined,或先转换 |
accepted 是 0 | 这一批全是真人请求 | 正常:真人请求会被丢弃 |
| 抓取健康里几乎看不到失败 | 还没导入,或这批只有 2xx | 发送包含错误的时间段 |
相关:机器人识别是怎么做的、订单这类业务事件用服务端事件,以及抓取错误。
这篇回答解决你的问题了吗?
我们会根据反馈修改和补充这篇内容。
提交没有成功,请稍后再试。
谢谢你的反馈,我们会据此改进这篇内容。你已经反馈过这篇了,谢谢。