基于python实现百度翻译功能
发布时间:2019-12-27 11:15

运转环境: python 3.6.0

今日处于操练的意图,就用 python 写了一个百度翻译,是怎么做到的呢,其实呢便是拿到接口,经过这个接口去拜访,不过中心确实是呈现了点问题,不过都处理掉了

先晾图后晾代码

运转成果:


# -*- coding: utf-8 -*-
功用:百度翻译
注意事项:中英文主动切换
import requests
import re
class baidu_translate:
 def __init__:
 self.query_string = query_string
 self.url_1 = 'https://fanyi.baidu.com/sug'
 # self.url = 'https://fanyi.baidu.com/v2transapi' # 这儿不能用这个地址,由于对方采用了反爬虫办法,拜访这个地址是人家是不会给你任何数据的
 self.url_0 = 'https://fanyi.baidu.com/transapi'
 self.zh_pattern = re.compile
 self.headers = {
 'accept': '* / *',
 'accept - encoding': 'gzip, deflate',
 'accept - language': 'zh-cn, zh; q=0.9',
 'connection': 'keep - alive',
 'content-type': 'application/x-www-form-urlencoded; charset=utf-8',
 'user-agent': 'mozilla/5.0  applewebkit/537.36  chrome/72.0.3626.121 safari/537.36',
 'x-requested-with': 'xmlhttprequest',
 def get_post_data:
 拿到 post 恳求上传的参数,并判别输入类型并予以回来
 :return: 查询词
 if re.search: # 输入的内容含有中文,则判别其为中文输入
 return {
 "from": "zh",
 "to": "en",
 "kw": self.query_string, # 含糊查询 url_1关键词
 "query": self.query_string, # 精准查询 url_0关键词
 else:
 return {
 "from": "en",
 "to": "zh",
 "kw": self.query_string, # 含糊查询 url_1关键词
 "query": self.query_string, # 精准查询 url_0关键词
 def request_translate:
 向百度恳求 json 数据
 :return: 向百度恳求的 json 数据
 data = self.get_post_data
 try:
 凯发k娱乐网站来就送38元response_0 = requests.request.json
 except exception: # 进行数据恳求的任何反常处理
 response_0 = ''
 try:
 response_1 = requests.request.json
 except exception: # 进行数据恳求的任何反常处理
 response_1 = ''
 return response_0, response_1
 def parse_translate_data:
 数据解析,将恳求到的翻译内容解析并输出
 :return: none
 response_0 = self.request_translate[0]
 response_1 = self.request_translate[1]
 # item = response_0
 if response_0:
 item = response_0.get[0].get
 print
 if response_1:
 data = response_1.get
 print
 for item in data[:1]: # 长度一般为5,这儿只保存其释义
 print))
 print))
 print
 # print)
def main:
 :return: none
 while true:
 try:
 query_keywords = input
 if query_keywords == "0000": # 假如输入四个 '0',退出小程序
 print
 break
 else:
 baidu = baidu_translate
 baidu.parse_translate_data
 except exception as e:
 print
if __name__ == '__main__':
 main

总结

服务热线
4000-000-000