使用navigator组件的方式声明链接:点我☒不推荐
优采云 发布时间: 2021-08-02 04:30使用navigator组件的方式声明链接:点我☒不推荐
...
swan.setPageInfo 中设置的字段不仅会在访问自然搜索场景时使用,而且在访问百度信息流时也起着至关重要的作用。详情请参考官方文档《信息流访问》
另外,swan.setPageInfo API不仅在流量访问场景中用于声明页面的内容,在客户端小程序的实现中,页面的基本信息也会作为页面共享和页面采集的摘要信息。
2.链接跳转
页面上的链接重定向对爬虫收录有很大的价值。对于普通的H5,跳转页面通常有两种方式:标签跳转window.location.href赋值跳转。前者直接在HTML标签中设置,发现效率和准确率都比后者友好很多。
同理,小程序中也有两种对应的页面跳转设置方式:
•导航器组件,选项卡式声明
•Navigation API,由用户事件等触发
为了被爬虫有效发现,我们强烈建议您在两者都满足您的需求时使用导航器组件来声明链接。
☑ 推荐跳跃的例子:
点我跳转
☒不推荐跳跃的例子:
点击我跳转到页面({
跳转(){
swan.navigateTo({
网址:'/pages/detail/detail'
});
}
...})
3.避免使用 webview 组件
为了方便小程序的开发,很多开发者会选择用webview组件嵌套H5页面来实现小程序。使用webview组件嵌套实现的小程序对爬虫不友好。因此,我们不建议使用这种方法来开发小程序。
4.tourist 模式兼容
由于爬虫的访问环境中没有账号登录模拟,任何页面都会以guest模式访问(guest模式调用swan.login会执行fail回调)。因此,开发者希望收录页面能够兼容游客模式。对于不依赖用户信息的页面,不添加强制登录逻辑,在获取用户信息失败时仍显示有效内容。
例如:在博客论坛的博文页面,在用户登录状态下只需要完成评论功能。那么在unlogged状态下访问页面时,文章main body应该是正常显示的,只有在用户点击评论时才需要登录。进入页面无需强制登录,可以正常浏览。
5.避免页面之间的顺序依赖
由于小程序一般暴露的入口比较集中,比如后续的页面只会通过首页跳转访问,所以小程序开发者通常容易忽略页面之间访问的独立性,导致页面实现逻辑和访问路径耦合过度状况。例如:首页请求数据信息后,通过setStorage存储在本地,跳转到二级页面时读取storage中存储的数据,直接展示,不做空处理。
考虑到基于网络的小程序被爬虫爬取的情况,每个页面都是通过一个独立的入口访问的。因此,应避免这种耦合访问顺序,并添加必要的兼容性处理。小程序开发时可以通过单独预览每个网页来检查是否满足要求。
代码示例: