前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3分钟实现语音播报微博热搜

3分钟实现语音播报微博热搜

作者头像
小雯子打豆豆
发布2020-06-19 10:34:05
8130
发布2020-06-19 10:34:05
举报
前几天看到一篇爬取微博热搜并语音播报的文章,觉得很好玩,就试着自己写了一下,我写的是简单版的代码,为了便于理解,做完熬夜做了一个小视频讲解。

主要思路:

1、获取热搜页面的返回数据

2、筛选热搜页面中的热搜名称、排行等信息

3、百度语音播报

微博热搜页面:https://s.weibo.com/top/summary

这个页面不需要用户登录,就能获取页面数据,所以我们不需要考虑登录时获取token的问题,这个下次会单独做个视频讲解。

获取微博热搜内容:

(由于语音识别只能支持1024个字节,所以我只爬取了前十的排行榜)

url = 'https://s.weibo.com/top/summary'
header = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 '
                  '(KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'
}
def get_text():
    list = []
    response = requests.get(url=url, headers=header)
    if response.status_code == 200: #判断接口请求是否正确
        html = etree.HTML(requests.get(url, headers=header).text) # 构造XPath解析对象
        hot_search_name = html.xpath('//td[@class="td-02"]/a/text()')  # 热搜名 字符串列表
        hot_search_rank = html.xpath('//td[@class="td-01 ranktop"]/text()')  # 热搜排行
        hot_search_name_true = hot_search_name[1:]  # 只取热搜排行,不取置顶热搜
        for i in range(0, 10):
            s = '第'+hot_search_rank[i]+'名' + hot_search_name_true[i] # 排行和热搜组合
            list.append(s)
    else:
        print('wrong')
    result = ''.join(list) # list转str
    return result

百度语音API地址:https://ai.baidu.com/ai-doc/SPEECH/Gk4nlz8tc

使用方法:创建百度账号->添加应用->获取id、key和secret_key,具体可以参考下面这篇文章,有讲过如何创建应用 【巧用校验码

百度语音识别

APP_ID = '19942258'
API_KEY = 'XXX'
SECRET_KEY = 'XXX'
def speech():
    client = AipSpeech(APP_ID, API_KEY, SECRET_KEY)
    result = client.synthesis(get_text(), 'zh', 1, {
        'vol': 5,  #音量
        'per': 0,  # 发音人选择
        'pit': 7, # 音调
        'spd': 4 # 语速
    })
    # 识别正确返回语音二进制 错误则返回dict 参照下面错误码
    if not isinstance(result, dict):
        with open('auido.mp3', 'wb') as f:
            f.write(result)

代码很简单,有空的可以尝试下,挺好玩的。最后给大家贴一下我爬取后的音频。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 软件测试小助手 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
语音识别
腾讯云语音识别(Automatic Speech Recognition,ASR)是将语音转化成文字的PaaS产品,为企业提供精准而极具性价比的识别服务。被微信、王者荣耀、腾讯视频等大量业务使用,适用于录音质检、会议实时转写、语音输入法等多个场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档