微信小程序抓取内容 UA 分 3 种场景
1、小程序 web‑view 组件(小程序里面嵌 H5,前端浏览器 UA)微信开放社...
关键词:miniProgram,新版还带上小程序 AppIDminiProgram/wx......
安卓示例:
Mozilla/5.0 (Linux; Android 13; xxx Build/xxx; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/xxx Mobile Safari/537.36 MicroMessenger/8.0.xx Weixin NetType/WIFI Language/zh_CN miniProgram/wxabc123456789
iOS 示例末尾同样带:
miniProgram/wxabc123456789✅ 判断规则:UA 小写包含
miniprogram → 请求来自小程序 web‑view。
注意:小程序 js 接口 wx.request() 不会携带这个浏览器 UA,wx.request 是微信服务端代理请求,UA 不是上面这个。
2、wx.request/wx.fetch(小程序 JS 发后端 http 请求,微信服务器代抓)
这个 UA不公开固定字符串,微信后端代理发出,没有 miniProgram 标记,会是微信内部服务 UA,不可以靠 UA 识别是小程序 wx.request 请求。
很多人踩坑:以为 wx.request 会带 miniProgram,实际不会;miniProgram 只存在 web‑view 网页环境(navigator.userAgent)。
3、微信官方爬虫(微信搜索收录抓取小程序页面 mpcrawler)
微信搜索用来抓取小程序内容做索引的爬虫 UA UA:mpcrawler同时 HTTP Header 带签名头:X‑WXApp‑Crawler‑TimestampX‑WXApp‑Crawler‑NonceX‑WXApp‑Crawler‑Signature场景值 = 1129。 只有微信官方收录爬虫才是mpcrawler。
重要区分总结
表格
| 场景 | UA 特征 |
|---|---|
| 小程序 web‑view 打开 H5(网页) | UA 包含 miniProgram/wxAppId |
| 小程序 wx.request 后端接口请求 | 微信服务端代理,无 miniProgram 标识,UA 不固定 |
| 微信搜索官方爬虫抓取 | UA 含有 mpcrawler,附带爬虫签名 Header |
补充
- UA 可以伪造,不能作为安全鉴权依据,只能做统计、分流、反爬识别;
wx.request想识别来源小程序,要自己在请求头加自定义字段,或者用小程序登录 openid 校验,不能靠 UA。
