python英文发音-利用Python制作查单词小程序(二):下载音频并播放单词读音

本文介绍如何利用Python下载并播放单词的音频。首先讲解如何通过Anaconda安装新模块,接着详细阐述通过Chrome开发者工具抓取百度翻译的音频URL。然后,通过Python代码实现音频下载并保存为MP3,最后演示使用pygame模块播放音频。
摘要由CSDN通过智能技术生成

上篇文章中,我们要使用"execjs”这个模块来执行JS代码,这个模块在Anaconda中没有预先安装好,我们需要单独安装它。那么,我们如何安装新的模块呢?

以Anaconda为例,我们先打开Anaconda Prompt,具体如下图所示:

打开以后,我们输入"pip install execjs”,输入回车键,程序会自动完成安装。如果我们要安装其他模块如"selenium”,我们只需要输入"pip install selenium”。

好,我们继续完成本期的任务。

为了完成这样一个查单词小程序,我们需要完成以下几个步骤:

1.输入单词,查询单词的释义和音标

2.下载音频并播放读音

3.保存到本地Excel文件中,并自动调整格式

4.打包成可执行的exe程序

在上一期文章中,我们讲解了第一个步骤:输入单词,查询单词的释义和音标。

在本期文章中,我们将讲解第二个步骤:下载音频并播放读音。

第一步:打开百度翻译,确定需要抓取的信息

第二步:利用开发者工具(DevTools)进行抓包分析

点击该图标以后,就会播放出单词读音。我们的目标始终是,找到传输目标数据的URL地址,然后利用Python去请求该链接,然后得到目标信息。这里的音频也是一样的,我们找到传递音频的链接。所以我们要借助开发者工具进行抓包分析。

以Chrome浏览器为例,我们可以通过以下方式打开开发者工具:

1. 在网页空白处点击右键,然后左键点击"

要读取单词可以使用Python的 requests 库和 BeautifulSoup 库来抓取网页内容,并通过对网页内容进行解析来获取单词的释义和音标。 首先,需要安装 requests 和 BeautifulSoup 库。可以使用以下命令来安装: ``` pip install requests beautifulsoup4 ``` 然后,可以使用 requests 库来获取网页内容。比如要获取百度翻译中 "apple" 的单词释义和音标,可以使用以下代码: ```python import requests word = 'apple' url = f'https://fanyi.baidu.com/#en/zh/{word}' response = requests.get(url) if response.status_code == 200: html = response.text print(html) ``` 这里使用了 f 字符串来拼接 URL 中的单词。如果请求成功,就可以得到网页的 HTML 内容。 接下来,可以使用 BeautifulSoup 库来解析 HTML 内容。可以先使用浏览器的开发者工具来看网页中需要解析的内容所在的标签和类名等信息。比如,单词的释义和音标在 HTML 中的 class 为 "mean-mean-wrapper" 的 div 标签中。可以使用以下代码来获取单词的释义和音标: ```python from bs4 import BeautifulSoup soup = BeautifulSoup(html, 'html.parser') mean_wrapper = soup.find('div', {'class': 'mean-mean-wrapper'}) if mean_wrapper: phonetic = mean_wrapper.find('span', {'class': 'phonetic'}) if phonetic: print(f'音标:{phonetic.text.strip()}') means = mean_wrapper.find_all('span', {'class': 'mean-english'}) if means: print('释义:') for mean in means: print(mean.text.strip()) ``` 这里使用了 BeautifulSoup 的 find 和 find_all 方法来找 HTML 标签。如果找到了对应的标签,就可以获取其中的文本内容。 最后,可以将代码封装成一个函数,让用户可以输入要找的单词。完整代码如下: ```python import requests from bs4 import BeautifulSoup def translate(word): url = f'https://fanyi.baidu.com/#en/zh/{word}' response = requests.get(url) if response.status_code == 200: html = response.text soup = BeautifulSoup(html, 'html.parser') mean_wrapper = soup.find('div', {'class': 'mean-mean-wrapper'}) if mean_wrapper: phonetic = mean_wrapper.find('span', {'class': 'phonetic'}) if phonetic: print(f'音标:{phonetic.text.strip()}') means = mean_wrapper.find_all('span', {'class': 'mean-english'}) if means: print('释义:') for mean in means: print(mean.text.strip()) word = input('请输入要询的单词:') translate(word) ``` 用户可以输入要找的单词,程序就会输出单词的释义和音标。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值