面临的问题
定价页、商品目录和营销活动会随国家而变,而从你自己办公室发出的请求,永远只能看到其中一个版本。要核对区域定价或验证本地化上线效果,就必须证明柏林或东京的访客究竟看到了什么。
应用案例
01快速解答
调用 localization(2 credits)并传入国家代码,得到该国的语言、Accept-Language 请求头、时区和货币,再在 stealthConfig 中把区域设置和时区传给 stealth_mode(5 credits),用它们渲染页面。localization 只返回数值、不应用任何一项,也不涉及代理,因此按 IP 地址封锁或定价的站点需要你自备位于该地区的代理。每次地区检查大约 7 credits。
02问题与方案
定价页、商品目录和营销活动会随国家而变,而从你自己办公室发出的请求,永远只能看到其中一个版本。要核对区域定价或验证本地化上线效果,就必须证明柏林或东京的访客究竟看到了什么。
CrawlForge 的 localization 会查询一个国家的区域设置值——语言、Accept-Language 请求头、时区和货币——由你把它们传给 stealth_mode,后者以该区域设置和时区在指纹随机化的浏览器中渲染页面。按语言或区域设置做本地化的站点会返回对应市场的版本;按 IP 地址判断的站点仍然需要一个位于该地区的代理,由你自行提供。
03代码
1// Look up Germany's locale values. They are returned, not applied.2const de = await mcp.localization({3 operation: "configure_country",4 countryCode: "DE",5});6 7// Pass them yourself: render the page with that locale and timezone8const page = await mcp.stealth_mode({9 operation: "scrape",10 url: "https://shop.example.com/pricing",11 formats: ["markdown"],12 stealthConfig: {13 locale: de.language,14 timezone: de.timezone,15 },16});17 18console.log(de.currency, page.content.markdown);04工具链
05常见问题
04
先用 localization 查询该国家——它会返回语言、Accept-Language 请求头、时区和货币——然后在 stealthConfig 中把区域设置和时区传给 stealth_mode,让页面按这些设置渲染。再把结果与使用你本地区域设置发出的请求作对比。如果站点按 IP 地址而非区域设置定价,那么在请求同时经由该地区的代理发出之前,看到的仍是同一个页面。
不能。localization 只返回区域设置值,不会让任何请求经过代理,因此不会改变站点看到的 IP 地址,而地区封锁正是跟随这个地址的。它的 handle_geo_blocking 操作只对你提供的响应进行分类并列出建议,既不抓取任何内容,也不绕过任何限制。要访问按 IP 封锁的站点,请在调用 stealth_mode 时通过 stealthConfig.proxyRotation 传入你自备的、位于该地区的代理。
适用。localization 支持 localize_search 操作,而 search_web 接受一个包含国家代码、语言和时区的 localization 对象,因此你可以看到该市场的用户所看到的结果。
大约 7 credits:localization 查询占 2 credits,stealth_mode 的 scrape 占 5 credits。每周检查五个市场,一个月大约 150 credits,完全在 Hobby 套餐的额度之内。