如何用Python从AVL-DNV网页词典提取音标拼写?
用Python提取AVL-DNV词典网页中的音标
步骤1:环境准备
需要安装两个核心工具库:
requests:用于发送HTTP请求获取网页源码BeautifulSoup:用于解析HTML结构定位目标内容
执行以下命令完成安装:
pip install requests beautifulsoup4
步骤2:网页爬取与音标提取
以目标词典的音标标签规则为例,音标内容通常被包裹在<span class="fonetica">标签内。以下是可直接运行的代码:
import requests from bs4 import BeautifulSoup def extract_phonetics(target_word): # 构造目标单词的查询URL url = f"http://www.avl.gva.es/lexicval/?paraula={target_word}" # 模拟浏览器请求头,避免被反爬拦截 headers = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/118.0.0.0 Safari/537.36" } # 发送GET请求 response = requests.get(url, headers=headers) if response.status_code != 200: return "请求失败,无法获取网页内容" # 解析HTML文档 soup = BeautifulSoup(response.text, "html.parser") # 定位音标所在的标签 phonetic_element = soup.find("span", class_="fonetica") if phonetic_element: # 提取并返回纯音标文本 return phonetic_element.get_text(strip=True) else: return "未找到对应音标" # 测试示例 if __name__ == "__main__": word = "perol" result = extract_phonetics(word) print(f"{word} 的音标:{result}")
步骤3:音标字符处理
提取到的音标包含Unicode特殊字符(如ɾ、ɔ́),Python原生支持Unicode编码,可直接打印、存储或用于后续处理。若需写入文件,需指定编码为utf-8:
with open("phonetics_result.txt", "w", encoding="utf-8") as f: f.write(result)
注意事项
- 频繁请求可能触发网站反爬机制,建议添加请求间隔(如
time.sleep(1)) - 若网站HTML结构更新,需同步调整标签定位的逻辑
内容的提问来源于stack exchange,提问作者Castaño
相关产品推荐
相关产品推荐

