微信现已开放小程序内搜索,开发者可以通过 sitemap.json 配置,或者管理后台页面收录开关来配置其小程序页面是否允许微信索引。当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索词条触发该索引时,小程序的页面将可能展示在搜索结果中。 爬虫访问小程序内页面时,会携带特定的 user-agent:mpcrawler 及场景值:1129。
这就是微信小程序官方的原话,也就是如今微信小程序已经可以被爬虫进行爬取了,这将带来新的一波流量红利,抓住这一波流量红利可以加快推广自己的微信小程序为自己带来收益。
微信小程序默认就是全部收录的,但是腾讯官方能不能把你的小程序页面全部进行收录就是另外的问题了。如果并没有被全部收录,或者说收录的页面数量过低,那么我们就可以自己进行推送,让微信可以更及时的收录到小程序的页面信息,让我们提交的页面信息将可能被用于小程序搜索结果展示。
默认情况下的收录情况:(如果存在部分页面不想被收录的,需要自行进行设置屏蔽)
{
"rules":[{
"action": "allow",
"page": "*"
}]
}
那么当你的收录页面比较少的时候就需要自行进行页面推送了。
官方的介绍在这:官网 这里就不对官网介绍的内容重复了,下面直接上代码吧。
import requests
import json
from fake_useragent import UserAgent
ua = UserAgent()
header = {"User-Agent": ua.random}
query = "userName=wechat_user"
# 获取小程序的access-token值的地址
url = "https://api.weixin.qq.com/cgi-bin/token"
# 配置自己小程序的个人信息
param = {"grant_type": "client_credential", "appid": "你的小程序AppId值", "secret": "你的小程序密钥)"}
# 提交的小程序页面信息
access_param = {"pages": [
{
"path": "pages/video/index",
"query": query
},
{
"path": "pages/html/index",
"query": query
},
{
"path": "pages/index/index",
"query": query
}
]
}
try:
# 发起第一次请求获取access-token值
res = requests.get(url, headers=header, params=param)
if res.status_code == 200:
content = json.loads(res.text)
access_token = content['access_token']
print("access:", access_token)
# 构造请求收录页面的地址
access_url = "https://api.weixin.qq.com/wxa/search/wxaapi_submitpages?access_token={}".format(access_token)
try:
# 发起第二次请求,请求微信官方进行收录自己小程序的页面
res = requests.post(access_url, headers=header, data=json.dumps(access_param))
if res.status_code == 200:
print(res.text)
else:
print("状态码:", res.status_code)
print(res.text)
except Exception as e:
print("fail:", e)
else:
print("状态码:", res.status_code)
print(res.text)
except Exception as e:
print("fail:", e)
对于小程序的APPID值以及小程序的密钥查看方式(在开发->开发设置中查看)
只要请求返回的结果的值是0,那么说明请求就已经成功了,如果出现了问题,可以参考下面的值,查看问题出在了那里。
值 | 说明 | 最低版本 |
-1 | 系统繁忙,此时请开发者稍候再试 | |
40066 | 递交的页面被sitemap标记为拦截,具体查看errmsg提示。 | |
40210 | pages 中的path参数不存在或为空 | |
40212 | paegs 当中存在不合法的query,query格式遵循URL标准,即k1=v1&k2=v2 | |
40219 | pages不存在或者参数为空 | |
47001 | http请求包不是合法的JSON | |
47004 | 每次提交的页面数超过1000(备注:每次提交页面数应小于或等于1000) | |
47006 | 当天提交页面数达到了配额上限,请明天再试 | |
85091 | 小程序的搜索开关被关闭。请访问设置页面打开开关再重试 | |
85083 | 小程序的搜索功能被禁用 |