通过爬虫实现一个简单语言翻译功能

刚学爬虫,写了一个简单的语言翻译的程序,大佬们就别喷小弟了!代码有点乱,大家将就看吧。。。

效果展示:

在这里插入图片描述
拿必应翻译做例子(实现起来简单。。。)

1.找到我们需要的获取的内容在这里插入图片描述
2.经过观察和搜索我们发现我们需要的内容都在这两个东西里面

在这里插入图片描述

3.拿出来他们的url,和user-agent 为我们所用!在这里插入图片描述在这里插入图片描述

在这里插入图片描述

4.接着是post请求时发送的data数据,即我们要翻译的句子在这里插入图片描述在这里插入图片描述
5.处理一些细节
  • 有时候我们发现它并会给我们提示相关的表达即tlookupw开头的请求回来的数据内容是{“statusCode”:“400”},这里不是请求失败,而是返回的json数据内容为{“statusCode”:“400”}
    在这里插入图片描述
    在这里插入图片描述

程序代码:

import requests
import json

# 建立一个可选语言字典
language = {
    "ar": "阿拉伯语",
    "de": "德语",
    "ru": "俄语",
    "fr": "法语",
    "ja": "日语",
    "th": "泰语",
    "en": "英语",
    "ko": "韩语",
}
while True:
    print("ar:阿拉伯语 # de:德语 # ru:俄语 # fr:法语 # ja:日语 # th:泰语 # en:英语 # ko:韩语 #quit:退出")
    print("选择翻译成的语言:")
    langu = input()
    if langu == "quit":
        break
    if langu in language:
        while True:
            print("提示 :  可输入  reselect  重新选择")
            res = input("请输入你要翻译的词或句子:   ")
            if res == 'reselect':
                break
            if res == 'q':
                break
            #post请求地址

            post_url = "https://cn.bing.com/ttranslatev3?isVertical=1&&IG=F3ACF2C4651E4F368D7F5CBDB5D7A4D6&IID=translator.5032.10"
            post = "https://cn.bing.com/tlookupv3?isVertical=1&&IG=CA5CCE85095F421783D4F0EF68E15038&IID=translator.5028.4"

            #请求头
            headers = {
                "user-agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1"
            }

            #post请求数据
            post_data = {
                "fromLang": "auto-detect",
                "text": res,
                "to": langu
            }
            #发送请求并接受回复
            response = requests.post(post_url, headers=headers, data=post_data)
            #将json格式数据转化为字典
            trans = json.loads(response.content.decode())
            data = {
                "from": trans[0]["detectedLanguage"]["language"],
                "to": langu,
                "text": res
            }
            tlookup = requests.post(post, headers=headers, data = data)
            transs = json.loads(tlookup.content.decode())

            #通过观察transs,选出我们需要的内容输出
            print(trans[0]['translations'][0]['text'],end='\n\n')

            #处理一些tlookup 数据为 {"statusCode":"400"}的 请求
            if "statusCode" not in transs:
                #判断是否有其他表达有就输出
                if len(transs[0]["translations"])!=0:
                    print("其他表达"+transs[0]["normalizedSource"]+"的方式")
                for i in transs[0]["translations"]:
                    s = i["normalizedTarget"]+"     "
                    for k in i["backTranslations"]:
                        s=s+k["normalizedText"]+","
                    print(s)
    else :
        print("没有对应的翻译语言,请重新输入!")
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值