分分钟钟做 一个超简单的 在线汉语字典

"""用百度汉语做 在线词语翻译"""

import requests
from lxml import etree

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36",
}


query = input("请输入查询词语\n")

url = f"https://hanyu.baidu.com/s?wd={query}"
print("正在尝试链接%s" %url)

# 向浏览器发起请求
res = requests.get(url,headers=headers)

# 获取response数据
data = res.content.decode()


# 将获取的response转换成ElementUnicodeResult 用于xpath数据提取
html = etree.HTML(data)

# 拼音
pinyin = html.xpath('//*[@id="basicmean-wrapper"]/div[1]/dl/dt/span/text()')[0]
# 词语解释
explain = html.xpath('//*[@id="basicmean-wrapper"]/div[1]/dl/dd/p/text()')[0]
# 语音播放
voice = html.xpath('//*[@id="pinyin"]/h2/span/a/@url')
# 将语音播放文件保存到本地
res = requests.get(voice[0], headers=headers)
file_name = query + ".mp3"
with open(file_name, "wb")as f:
    f.write(res.content)


# 将<class 'lxml.etree._ElementUnicodeResult'>转化成字符串类型
str_pinyin = ""
str_explain = ""
# 总字典
ciyu_dict = {}

for j in pinyin:
    str_pinyin = str_pinyin + str(j)
    ciyu_dict["拼音"] = str_pinyin
for i in explain:
    str_explain = str_explain + str(i)
    str_explain = str_explain.strip() #去换行和空格
    ciyu_dict["解释"] = str_explain

ciyu_dict["语音"] = file_name

print(ciyu_dict)



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值