Python获取百度翻译的两种方法示例详解

 更新时间:2024年09月28日 10:25:11   作者:PythonFun  
本文介绍了使用Python通过requests和urllib两种方式获取百度翻译的方法,requests方法通过发送post请求并解析json数据,而urllib方法通过请求和读取url来获取翻译,两种方法各有优劣,用户可根据需求选择

一、引言

百度是我们常用的搜索工具,其翻译是与爱词霸合作,总体看其反应速度较快,可以作为项目中重要的翻译工具。根据大家的需要,现提供两种Python获取百度翻译的两种办法:

二、requests法

我们引用requests模块,向百度发出post请求,得到回复后,进行解释为json格式数据。代码如下:

import requests  #找一个趁手的工具,1. 导入这个工具
url = "https://fanyi.baidu.com/sug"  # 2. 确定爬取的网址,存到变量里面url
#3. 伪装爬虫
headers = {"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36",
           "cookie":'PSTM=1715648276; BIDUPSID=4FAECEB2016218E5337788D59D97E028; BAIDUID=A4621D4AF575EB35000B164A4D71A6C9:FG=1; BDSFRCVID=gDDOJexroG3M1QJttZbIbSp-4cGQd7cTDYLEOwXPsp3LGJLVYVGdEG0PtEXPGLtMnhULogKKBeOTHg4F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF=Jn-O_C82JKL3HJOmMJjE5bcHMhoK--Q0KKJyLR-8Kb7VbPQCyUnkbfJBDloD-l3-ajnJ0qboKfO2KDbTyT5OL447yajDJjOuXKJi_JC-QbT8ob53DJ7pQT8r2xDOK5OibmDqslnNab3vOpoNXpO1bT0zBN5thURB2DkO-4bCWJ5TMl5jDh3Mb6ksDhAtqj0OfnIe_I0KfbjjfbTCMJOBq4k0-qJ-a4JQa5TbsJOOaCv5OpOOy4oTj6D0KqonK46JbIcBsRoR-TCMepk4MU5o3MvBKHKjWlRQWbcLof3V2fnq_Ij9Qft20bIEeMtjBbQuJtj7KR7jWhvIeq72y-tMQlRX5q79atTMfNTJ-qcH0KQpsIJM5-DWbT8bjHCJt6K8JbujoKvK-nO5KRQphRrhq4tehH4O5xJ9WDTOQJ7TthCaVqcm5h6D0-D9K2FJ5MbI5nv2-pbwBp5Cfb5K0jJHyUIzynjkLfbb3mkjbPbNyUJn8-bEh47lX-4syPRGKxRnWIkJKfA-b4ncjRcTehoM3xI8LNj405OTbIFO0KJzJCFMMDLwjTK2DTPBKMbeet5Kaj5tsJOOaCkWHqOOy4oWK441DPFDQxTJbNQabnoR-TCMHp3hb5Jj3M04X-oN-PQpLRvKahcIWMQZSl3gQft20b0kWb3xWn3uaDbP2n7jWhvIeq72y-tMQlRX5q79atTMfNTJ-qcH0KQpsIJM5-DWbT8IjHCJt6K8JbujoKvt-5rDHJTg5DTjhPrMbPORWMT-MTryKKOztxjkf-bL-xrD0nODjMbxQ40fKanRhlRNB-3iV-OxDUvnyxAZWJjxKUQxtNRJKxnx3hRM8Jrd3fvobUPULxo9LUvMJgcdot5yBbc8eIna5hjkbfJBQttjQn3hfIkj2CKLK-oj-D8lj5AM3j; BD_UPN=12314753; H_WISE_SIDS=60360_60600_60728_60749; delPer=0; BD_CK_SAM=1; BAIDUID_BFESS=A4621D4AF575EB35000B164A4D71A6C9:FG=1; BDSFRCVID_BFESS=gDDOJexroG3M1QJttZbIbSp-4cGQd7cTDYLEOwXPsp3LGJLVYVGdEG0PtEXPGLtMnhULogKKBeOTHg4F_2uxOjjg8UtVJeC6EG0Ptf8g0M5; H_BDCLCKID_SF_BFESS=Jn-O_C82JKL3HJOmMJjE5bcHMhoK--Q0KKJyLR-8Kb7VbPQCyUnkbfJBDloD-l3-ajnJ0qboKfO2KDbTyT5OL447yajDJjOuXKJi_JC-QbT8ob53DJ7pQT8r2xDOK5OibmDqslnNab3vOpoNXpO1bT0zBN5thURB2DkO-4bCWJ5TMl5jDh3Mb6ksDhAtqj0OfnIe_I0KfbjjfbTCMJOBq4k0-qJ-a4JQa5TbsJOOaCv5OpOOy4oTj6D0KqonK46JbIcBsRoR-TCMepk4MU5o3MvBKHKjWlRQWbcLof3V2fnq_Ij9Qft20bIEeMtjBbQuJtj7KR7jWhvIeq72y-tMQlRX5q79atTMfNTJ-qcH0KQpsIJM5-DWbT8bjHCJt6K8JbujoKvK-nO5KRQphRrhq4tehH4O5xJ9WDTOQJ7TthCaVqcm5h6D0-D9K2FJ5MbI5nv2-pbwBp5Cfb5K0jJHyUIzynjkLfbb3mkjbPbNyUJn8-bEh47lX-4syPRGKxRnWIkJKfA-b4ncjRcTehoM3xI8LNj405OTbIFO0KJzJCFMMDLwjTK2DTPBKMbeet5Kaj5tsJOOaCkWHqOOy4oWK441DPFDQxTJbNQabnoR-TCMHp3hb5Jj3M04X-oN-PQpLRvKahcIWMQZSl3gQft20b0kWb3xWn3uaDbP2n7jWhvIeq72y-tMQlRX5q79atTMfNTJ-qcH0KQpsIJM5-DWbT8IjHCJt6K8JbujoKvt-5rDHJTg5DTjhPrMbPORWMT-MTryKKOztxjkf-bL-xrD0nODjMbxQ40fKanRhlRNB-3iV-OxDUvnyxAZWJjxKUQxtNRJKxnx3hRM8Jrd3fvobUPULxo9LUvMJgcdot5yBbc8eIna5hjkbfJBQttjQn3hfIkj2CKLK-oj-D8lj5AM3j; channel=baidusearch; baikeVisitId=356e66e5-f4fb-4dd9-99a8-06bbc9ceb739; __bid_n=18ea75651ea4944bc97197; BD_HOME=1; H_WISE_SIDS_BFESS=60360_60600_60728_60749; B64_BOT=1; COOKIE_SESSION=5687_0_7_7_7_16_0_0_4_6_0_0_715485_0_6_0_1727255911_0_1727255905|9#169_6_1718709886|3; PSINO=7; BDRCVFR[S4-dAuiWMmn]=mk3SLVN4HKm; BDRCVFR[k-3xBxsWSJs]=mk3SLVN4HKm; H_PS_PSSID=60600_60794_60826_60844; BA_HECTOR=85808lal0h0g0k8g8h258h8h8nq73q1jfd5bi1v; ZFY=CcXTJMCi9ht2ML4gezdFtbE9Uar1JmpUfQgd:BgWOiis:C'}
while True:
    word = input("请输入单词:")
    resp = requests.post(url,headers = headers, data = {"kw":word})  # 发请求
    for item in resp.json()['data']:
        #想看效果,就打印Item
        print(item["v"])

三、urllib法

导入urllib,发出Request向url请求,再用urlopen读取并编码为utf-8,最后获取单词的翻译,代码如下:

from urllib import request, parse
import json
def translate_word(string):
    url = "https://fanyi.baidu.com/sug"  # 请求数据的url链接
    data = {'kw': string}
    data_url = parse.urlencode(data)
    req = request.Request(url=url, data=data_url.encode('utf-8'))
    response = request.urlopen(req).read()
    res = json.loads(response)
    if 'data' in res and len(res['data']) > 0:
        trans_list = res['data'][0]['v']
        if ';' in trans_list:
            trans = trans_list.split(';')
        else:
            trans = trans_list
    else:
        trans = "翻译失败"
    return trans_list
print(translate_word("think"))

四、学后反思

对比两种两法,获取的数据内容不尽相同,第二种获取的内容较少,第一种获取的内容更为全面,方法也简单,但是获取的内容有重复。

大家可以根据个人的需求,选择适合自己的代码。

到此这篇关于Python获取百度翻译的两种方法的文章就介绍到这了,更多相关Python获取百度翻译内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python实现pdf电子发票信息提取到excel表格

    Python实现pdf电子发票信息提取到excel表格

    这篇文章主要为大家详细介绍了如何使用Python实现pdf电子发票信息提取并保存到excel表格,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05
  • 使用Python可设置抽奖者权重的抽奖脚本代码

    使用Python可设置抽奖者权重的抽奖脚本代码

    这篇文章主要介绍了Python可设置抽奖者权重的抽奖脚本,抽奖系统包含可给不同抽奖者设置不同的权重,先从价值高的奖品开始抽,已经中奖的人,不再参与后续的抽奖,本文通过实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-11-11
  • python实现排序算法

    python实现排序算法

    这篇文章主要介绍了python实现排序算法,处理小序列不错,需要的朋友可以参考下
    2014-02-02
  • python函数局部变量用法实例分析

    python函数局部变量用法实例分析

    这篇文章主要介绍了python函数局部变量用法,较为详细的分析了Python局部变量的原理与使用技巧,并对比分析了局部变量与global全局变量的用法区别,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • python实现寻找最长回文子序列的方法

    python实现寻找最长回文子序列的方法

    这篇文章主要为大家详细介绍了python实现寻找最长回文子序列的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • python字符串反转的四种方法详解

    python字符串反转的四种方法详解

    这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12
  • 详解Python对JSON中的特殊类型进行Encoder

    详解Python对JSON中的特殊类型进行Encoder

    这篇文章主要介绍了详解Python对JSON中的特殊类型进行Encoder,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python中免验证跳转到内容页的实例代码

    Python中免验证跳转到内容页的实例代码

    在本篇文章里小编给大家整理的是一篇关于Python中免验证跳转到内容页的实例代码,有兴趣的朋友们可以学习分享下。
    2020-10-10
  • 利用Python实现PDF文档的自动化创建

    利用Python实现PDF文档的自动化创建

    在当今数字化的世界中,信息共享和数据报告离不开文档,而在众多文档格式中,PDF因其跨平台兼容性、固定布局和安全性,成为企业报告、合同、发票等各类正式文档的首选,本文将深入探讨如何使用Spire.PDF for Python这一专业库,实现PDF文档的自动化创建
    2025-11-11
  • Python中五种不同解析库的应用与提取速度对比

    Python中五种不同解析库的应用与提取速度对比

    这篇文章主要为大家详细介绍了Python中五种不同解析库的应用与提取速度对比,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-05-05

最新评论