示例 - 获取天气情况

开发中获取天气数据,一般会选择比较稳定的官方接口,比如 中国天气网的数据接口(http://wthrcdn.etouch.cn/weather_mini?city=上海)就可以直接拼接 city城市名称调用获取,但是因为 请求地址是 http 的,所以像微信小程序的业务域名情况就不太适用了。网上有很多数据接口可以提供天气方面的数据信息,大致分为两类,大平台的收费版,稳定可靠,但需要付费使用并且有一定的调用次数等限制;另一种是免费版,可能无人维护或者早已弃用,大多不稳定,很难筛选和鉴别,而业务场景为自己开发的话,可以使用下面这种方式,通过请求 百度 搜索引擎。带上城市拼接上天气字段, 例如 上海天气这种搜索关键字,请求百度后,会获取到带有天气数据信息的页面, 从源代码中使用正则表达书来截取其中需要的天气信息即可,当然这样也不一定多稳定,有可能某一天源码中的字段改变会导致正则表达式无法匹配也未为可知,下面是在微信小程序中使用的案例

wx.request({
    url: 'https://www.baidu.com/s?wd=' + city + '天气',
    method: 'GET',
    header: {
        'Content-Type': 'application/json'
    },
    success: res => {
        var name = res.data.match('<span class="c-gap-right-small">(.+?)</span><span class="c-gap-right-small">(.+?)</span><span class="c-gap-right-small">(.+?)</span>')
        console.log(name[2] + ' ' + name[3])
    }
})