專案

一般

配置概況

動作

Feature #371

進行中
SC

ARCH-2-followup-a 負載/封鎖實測:多城市連續 session 零封鎖(N=0/M=0%,engineering-fieldtest 不升 )+PAGINATION_HARD_CAP 邊界複測 (968,1000]+衍生 followup-g

Feature #371: ARCH-2-followup-a 負載/封鎖實測:多城市連續 session 零封鎖(N=0/M=0%,engineering-fieldtest 不升 )+PAGINATION_HARD_CAP 邊界複測 (968,1000]+衍生 followup-g

是由 Sashiba Chou19 天 前加入.

狀態:
New
優先權:
Normal
被分派者:
-
開始日期:
2026-07-13
完成日期:
完成比例:

0%

預估工時:

概述

ARCH-2-followup-a 負載/封鎖實測批:多城市連續 session 實測零封鎖+PAGINATION_HARD_CAP 邊界複測+衍生 followup-g

背景

  • 業主於 2026-07-13 透過遠端 AskUserQuestion 拍板本批方向:測試爬蟲會不會被封鎖(三選一:測試封鎖 / 接上行程規劃 / 其他)。
  • ARCH-2 採集線(Feature #369)落地後,BookingScraperAdapter 僅跑過 1 次 1 頁 live smoke;「業主連續使用(6–10 個查詢序列)是否觸發 CAPTCHA/封鎖」是全批唯一無真實機械證據的封鎖風險項(open-questions ARCH-2-followup-a,qa 列本批建議優先 #1,devil E1)。
  • 工程暫定門檻 N=3/M=30%/成功率 70%【低信心】待真實連續查詢觀測校準;PAGINATION_HARD_CAP=1000 同批可複測(Q13-followup 系列已知邊界 (875,1000])。
  • 本批屬 engineering-fieldtest:一次性低頻小樣本實測,依低信心來源上限/接地上限條款,不驅動任何 specs 升級、不改 ADR-003 門檻、不改 planning_config 常量

變更內容

1. 實測產物(experiments/arch2-followup-a/,非治理目錄)

  • run_load_test.py(新):多城市連續 session 負載測試腳本。直接 import 複用(未修改)experiments/q13-followup/booking_graphql_capture.py(BlockedError / polite_wait / detect_block / capture_graphql_template / verify_field_names / fetch_offset)+src/.../booking_scraper_adapter.py 純函式(build_search_url / parse_graphql_search_response)。
  • 場景:單一瀏覽器 context、單線程全序列,依序查 8 目的地(Tokyo/Osaka/Kyoto/Taipei/Seoul/Bangkok/Singapore/Hong Kong),每目的地 search → GraphQL 攔截 → offset=0 取頁 → 2–3 詳頁;次目標對 Tokyo 二分逼近 PAGINATION_HARD_CAP 邊界。
  • C-4 紀律:≥5s+抖動節流(實測目的地間/詳頁間 8–16s)、遇封鎖即停、未換 IP、未繞 CAPTCHA、請求總數 50 ≤ 80 硬上限、未採集照片二進位(C-9)/評論者個資(C-10)。
  • raw_output/load_test_summary.json(新):8 目的地逐筆結果+boundary_narrowing+完整 request_log 時間戳。
  • RESULTS.md(新):比照 Q13 免責 header(tier=engineering-fieldtest、不升 、單機/單 IP/單時間點)+逐句樣本邊界揭露。

2. 追蹤同步(open-questions.md,主協調者維護)

  • ARCH-2-followup-a:待實測 → 已實測(2026-07-13,engineering-fieldtest,不驅動 ),回填觀測 N=0/M=0%、邊界 (968,1000]、sponsoredAdsData 7/7 缺席、Taipei 異常摘要。
  • 新增 ARCH-2-followup-g(P1):GraphQL 攔截失敗時 DOM fallback 端到端驗證(Taipei 異常衍生)。

實測結果

  • 主結論:此足跡下零封鎖——8 目的地 50 請求 ~7.3 分鐘,stop_reason=nullblocked_at=null,全程無 CAPTCHA/403/429;搜尋/翻頁/詳頁 7/8 全鏈路 HTTP 200/202。
  • 觀測 N=0、M=0%:【誠實限界】零失效事件不足以確認或推翻暫定 N=3/M=30%,僅「此足跡在此刻未觸發」單點證據,不外推至更高頻/更長期/不同 IP;要校準需先觀測到真實失效事件。
  • PAGINATION_HARD_CAP 邊界:本 session Tokyo nbResultsTotal=5665(Q13 為 5610→內容漂移實證),offset 875/937/968 皆非固定終點頁 → 邊界收斂 (968,1000](Q13 (875,1000],方向一致皆嚴格 <1000);1000 仍屬安全上界,維持【低信心】不改常量。
  • sponsoredAdsData 7/7 缺席:強化 Q13 單點觀測(排除偶然),列實作前必復查是否有替代欄位。
  • Taipei 異常(明確非封鎖):search 200 成功但 GraphQL 模板攔截失敗(前端變異,detect_block 全程未觸發);生產路徑理論上轉 DOM fallback,但該路徑從未端到端驗證 → followup-g。

驗收標準

  • python -m pytest -q536 passed,exit code 0(主協調者親跑覆核,實測前後基準一致)
  • 實測全程遵守 C-4:單線程、≥5s 節流、遇封鎖即停(本次未觸發)、未換 IP/未繞 CAPTCHA、請求 50 ≤ 80
  • 產物experiments/arch2-followup-a/未寫入任何治理目錄(docs/specs、docs/decisions、docs/research/conclusions、docs/owner-tracking)
  • 零 specs 升級、不改 ADR-003 失效觸發門檻、不改 planning_config.PAGINATION_HARD_CAP 常量
  • RESULTS.md 誠實揭露腳本節流缺口(search→capture 段 ~2-3s <5s 目標,未觸發封鎖)+Playwright 環境路徑差異(conda 環境非 scratchpad,未污染專案依賴)
  • 機械證據:total_request_count=50stop_reason=nullblocked_at=null/執行 13:52:49Z~14:00:05Z

關聯

  • 實測報告:experiments/arch2-followup-a/RESULTS.md
  • 前置批:Feature #369(ARCH-2 採集線啟動批)
  • 承接遺留:Q13-followup-a/b(PAGINATION_HARD_CAP 邊界系列)
  • 衍生:ARCH-2-followup-g(DOM fallback 端到端驗證,P1,涉核心「採集不靜默漏收」)
  • 未竟:ARCH-2-followup-b~f(整合批待辦);Q14 Agoda 反爬實測;Q17 Tiqets key 未申請;ARCH-1 整體維持

沒有任何資料可供顯示

動作

匯出至 PDF Atom