browser-fetch — 共享可选浏览器渲染后端(fetchlib L3)

SkillWeb & browsing

A shared, pluggable real-browser rendering backend (default engine Selenium, headless, optional proxy) that mounts as fetchlib's L3 tier, so multiple skills stop each writing their own Selenium — returns (status, html, headers), normalizes anti-bot challenge pages to status=403 so the waterfall correctly marks them blocked, and exposes register_engine() for opt-in nodriver / camoufox / scrapling. Use when the user needs JS-rendered HTML for a scrape, hits a page that comes back empty or thin without a browser, wants one reusable browser layer across scraping skills, or wants to route a fetch through a proxy. Triggers on \"browser-fetch\", \"要真浏览器渲染\", \"这站要跑 JS 才有内容\", \"用 Selenium 抓一下\", \"挂个浏览器后端\", \"curl 抓不到内容\", \"带代理抓\", \"render JS to scrape\", \"headless browser fetch\", \"this site needs a browser\". Pairs with /fetchlib (register it as the browser L3 tier, only after curl_cffi / Jina fail) and /api-pacer; deliberately does NOT replace the existing Selenium inside /trustpilot. Honest limit (2026-06, datacenter IP): it takes Trustpilot-grade JS sites but still fails Cloudflare Managed Challenge / DataDome — that needs residential IPs or a paid unblocker; it never solves CAPTCHAs or defeats access barriers.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the browser-fetch — 共享可选浏览器渲染后端(fetchlib L3) skill

What this skill tells your AI

The instructions your AI receives, as published by noique/cross-border-ecommerce-skills in tools/browser-fetch/SKILL.md and read by ahel’s review.

把"真浏览器渲染 + 可选代理"能力(和 tools/trustpilot 里那套 Selenium 一个路子)提成一个可复用的共享后端,直接当 fetchlibL3 挂上——多个 skill 不再各写一套浏览器。引擎可插拔,默认 Selenium。

诚实定位(据 2026-06 实测,数据中心 IP、无代理)

目标curl_cffiJina本工具(Selenium)nodriver
Trustpilot❌403真内容 1008k⚠️ 薄 6k
Cloudflare 质询 / Muckrack / G2❌403❌ 卡质询页❌ 卡质询页
  • 定位 = "JS 渲染 + 中等防护(Trustpilot 级)":它能拿下 curl_cffi 渲染不了的站。
  • 不是反爬银弹:从数据中心 IP,连真浏览器(Selenium/nodriver)也过不了 Cloudflare Managed Challenge / DataDome 堡垒。那些要住宅 IP(+ 或 Camoufox/Scrapling 的 Turnstile solver)或付费 unblocker——不是换个更炫的浏览器库能解决的。
  • 默认用已验证的 Selenium;nodriver / camoufox / scrapling 作 opt-in 引擎,先在住宅 IP 上本地比测再信

用法

当 fetchlib 的 L3 后端(推荐):

import fetchlib, browser_fetch
fetchlib.register_backend("browser", browser_fetch.as_fetchlib_backend(engine="selenium", proxy=None))
f = fetchlib.Fetcher(tiers=("curl_cffi", "jina", "browser"))   # curl_cffi/Jina 拿不下才升级到浏览器

独立用:

from browser_fetch import browser_fetch
status, html, headers = browser_fetch("https://example.com/spa", engine="selenium",
                                       proxy="http://host:port", headless=True, wait=6)
# 检测到质询页会归一化成 status=403,让 fetchlib 正确判 blocked

插入别的引擎(等有住宅 IP 再测):

import browser_fetch
browser_fetch.register_engine("nodriver", my_nodriver_fn)   # fn(url, proxy=, headless=, ...) -> (status, body, headers)

自测(无浏览器/网络,验证 block 检测 + 引擎注册 + fetchlib 适配):python3 browser_fetch.py

引擎现状

引擎状态说明
selenium✅ 内置已验证拿下 Trustpilot;authed/住宅代理需配 selenium-wire(如 trustpilot 那样)
nodriver / camoufox / scrapling🔌 register_engine 可插更隐蔽,但要住宅 IP 才有意义;实测数据中心 IP 下同样过不了堡垒,先本地比测

被哪些 skill 使用(adoption,均 opt-in)

Skill怎么接
任意需要 JS 渲染的抓取挂成 fetchlib 的 browser L3,curl_cffi/Jina 失败才升级
media-press-discoveryMuckrack 是 Cloudflare 堡垒 → 即使本工具也需住宅 IP;有住宅代理时 proxy= 再接
tools/trustpilot保持现有 Selenium 不动;本工具是给"想复用浏览器能力的其它 skill",不替换它

不碰 trustpilot:平行新模块,接受一点重复;以后想 DRY 再让 trustpilot 反过来用它,那是另说。

依赖

  • 可选:selenium(pip install selenium,4.6+ 自带 Selenium Manager 下驱动)+ 本机 Chrome。不装则只有引擎注册/适配逻辑可跑(懒加载)。
  • fetchlib 搭配用(它负责 waterfall / 限速 / 熔断 / 合规)。

诚实边界 & 合规红线(美国运营)

  • 只做合规研究抓取:渲染 JS + 可选代理;不解 CAPTCHA、不破解访问壁垒、不用僵尸网络代理、不碰 PII——这些是调用方的法律判断(CFAA / hiQ v. LinkedIn / Meta v. Bright Data / CCPA-CPRA)。若你插入一个自动解 Turnstile的引擎,那已越入"破壁",风险自负。
  • 不服务 ToS 违规自动化。代理只用 KYC/知情同意审计过的供应商。
  • :每次起浏览器,只当 fetchlib waterfall 里 curl_cffi/Jina 失败后的 L3 升级用,别当默认。

Created by Alex / 黄子阳 — https://ckcm.us Open Source: https://github.com/noique/cross-border-ecommerce-skills Licensed under CC BY-NC 4.0

Signals

GitHub stars
50
Forks
6
Last commit
Aug 2026
Advanced
Catalog kind
skill
Gateway key
browser-fetch
Source
github.com/noique/cross-border-ecommerce-skills