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('播放完毕!')
注意:记得修改一个上面的那个路径,因为这是运用爬虫先将一个字的音频下载,再播放的。
运行结果:
如果大家觉得这个还有什么改进的地方,记得评论。