前天看了一个帖子,是利用腾讯云函数推送微博热搜的,心血来潮,然后也写了一个 。我的思路的通过api获取热搜数据,再通过api推送到微信平台,要是从微博抓取就太麻烦了,又要准备cookies又得写老长的代码,还是api简单省事。
先做一些准备,申请一些api什么的,如果都ok了可以直接到下文看代码。

准备工作

首先是申请一个微博热搜的api,可以在这里申请 申请链接,注册账号后,在控制台验证邮箱

然后点击申请链接,申请接口,申请完成后,点击在线调试,然后保存好key值。

申请腾讯API

接下来就是申请推送的api,微信关注公众号pushplus 推送加,关注后会发送一个token值,也记好,等一下要用到
然后就是注册一个腾讯云账号,然后前往腾讯云函数控制台 控制台链接,创建一个自定义的腾讯云函数,运行环境是python3.6

等部署完成后跳转,点击函数代码

添加代码

把里面的代码替换成下面的

# -*- coding: utf8 -*-
import json
import requests
def main_handler(event, context):
url = "http://api.tianapi.com/txapi/weibohot/index?key=key值"
raw = requests.get(url)
data=json.loads(raw.text)
newlist=data.get('newslist')
push_url="http://www.pushplus.plus/send?token=token值&title=微博热搜&content="
dict_1={}
if data['code']==140:
return("error-140")
for i in range(1,11):
if i==11:
exit()
if len(str(newlist[i]['hottag']))==0:
dict_1[i]=newlist[i]['hotword']+"--"+"热搜指数:"+newlist[i]['hotwordnum']
else:
dict_1[i]=newlist[i]['hotword']+"--"+"热搜指数:"+newlist[i]['hotwordnum']+"--"+newlist[i]['hottag']
push_json=json.dumps(dict_1)
push_url=push_url+push_json+"&template=json"
return_data=requests.get(push_url)
return_data=json.loads(return_data.text)
success_msg=str(return_data['msg'])+str(return_data['data'])
return(success_msg)

然后把代码里的key值和token值替换成上文申请到的热搜key值,和关注公众号得到的token值,点击部署,然后测试。
最后,在云函数的触发管理,创建一个触发器,触发周期选择自定义,然后填写0 0 */2 * * * *即可大功告成。

测试一下微信就能收到推送了,我这里是设置的两个小时推送一次。为了防止推送两次,这里需要在云函数的函数配置页面修改执行超时时间为6秒,重试次数修改为0。