输入一段话,自动播放话中的内容

import urllib
from urllib.request import urlopen
from urllib import parse
from bs4 import BeautifulSoup
import re            #导入正则表达式模块
from pygame import mixer   #导入pygame为了播放.mp3文件
import time     # 时间模块
import sys


def Time_1():     #  进度条函数
    for i in range(1,51):
        sys.stdout.write('\r')
        sys.stdout.write('{0}% |{1}'.format(int(i%51)*2,int(i%51)*'■'))
        sys.stdout.flush()
        time.sleep(0.125)
    sys.stdout.write('\n')

def Chinese(words):
    str_words=''
    for i in words:
        if '\u4e00' <= i <= '\u9fff':
            str_words+=i

    return str_words

def Chineses(str_1):
    if '\u4e00' <= str_1 <= '\u9fff':
        return True
    return False


keywords_1=input('请插入一段话:')
keywords_2=Chinese(keywords_1)


for key_words in keywords_2:

    key_word=parse.urlencode({'keyword':key_words})
    key_word=key_word[key_word.find('=')+1:]
    url='https://hanyu.baidu.com/zici/s?wd='+key_word
    page=urlopen(url).read()
    soup=BeautifulSoup(page,'lxml')
    play_url=soup.select('div.pronounce span a')

    url_list=[]

    for i in play_url:
        url_m=re.findall(r'url=".*"',str(i))
        url_mu=(url_m[0])[url_m[0].find('"')+1:url_m[0].rfind('"')]
        url_list.append(url_mu)

    urllib.request.urlretrieve(url=url_list[0],filename='F:\爬虫\{}.mp3'.format(key_words))

print('-*-'*27)
print('正在加载内容...')
Time_1()
print('加载成功!')
print('开始播放')


mixer.init()
for i in keywords_1:
    print(i,end='')
    if Chineses(i):
        mixer.music.load('F:\爬虫\{}.mp3'.format(i))
        mixer.music.play()
        time.sleep(0.6)
        mixer.stop()
print('\n')

print('播放完毕!')

注意:记得修改一个上面的那个路径,因为这是运用爬虫先将一个字的音频下载,再播放的。
运行结果:
在这里插入图片描述

如果大家觉得这个还有什么改进的地方,记得评论。

发布了51 篇原创文章 · 获赞 299 · 访问量 9205

猜你喜欢

转载自blog.csdn.net/qq_45404396/article/details/104142197