Python 爬取必应翻译_编译中的博客-程序员ITS203_python 获取必应翻译

技术标签: python  

封装爬取必应翻译功能

import requests


def transation(text):
    tunsXml = requests.get('https://cn.bing.com/translator/')
    if tunsXml.status_code != 200:
        raise Exception('')
    pos = tunsXml.text.find('IG:"')
    IG = tunsXml.text[pos + 4:pos + 4 + 32]
    cookie = tunsXml.cookies
    Counts = 1
    url = 'https://cn.bing.com/ttranslatev3?isVertical=1&&IG={}&IID=translator.5028.{}'.format(IG, Counts)
    postdata = '&fromLang=en&text={}&to=zh-Hans'.format( requests.utils.quote(text))
    headers = {
        'accept': '*/*',
        'accept-encoding': 'gzip, deflate, br',
        'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
        'content-type': 'application/x-www-form-urlencoded',
        'sec-fetch-mode': 'cors',
        'sec-fetch-site': 'same-origin',
        'origin': 'https://cn.bing.com',
        'referer': 'https://cn.bing.com/translator/',
        'content-length': str(len(postdata))
    }
    res = requests.post(url=url, headers=headers, data=postdata, cookies=cookie)
    if res.status_code != 200:
        raise Exception('')
    return res.json()[0]['translations'][0]['text']

另一通用版本其他各国语言翻译成中文

import requests
def start_tran(content):
    from_data = {}
    for i in content:
        if '\u4e00'<= i <= '\u9fff':
            return content
        else:
            from_data = {'fromLang':'auto-detect','text': content, 'to': 'zh-Hans'}
            return translate(from_data)

def translate(from_data):
    tunsXml = requests.get('https://cn.bing.com/translator/')
    if tunsXml.status_code != 200:
        raise Exception('')
    pos = tunsXml.text.find('IG:"')
    IG = tunsXml.text[pos + 4:pos + 4 + 32]

    url = 'https://cn.bing.com/ttranslatev3?isVertical=1&&IG={}&IID=translator.5028.78'.format(IG)
    headers = {
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.130 Safari/537.36'
    }
    r = requests.post(url,data = from_data ,headers=headers)
    r.raise_for_status()
    r.encoding = r.apparent_encoding
    data = r.json()  # 取出翻译结果
    detectedLanguage = data[0]
    translations = detectedLanguage['translations']
    result = translations[0]['text']
    return result

print(start_tran("hello,world"))
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/m0_38076876/article/details/103167434

智能推荐

HDOJ--1865 1string +HDOJ--2504 A==B? +Problem B_qq_1127833416的博客-程序员ITS203

1stingTime Limit: 5000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 5933    Accepted Submission(s): 2271Problem DescriptionYou will be given a strin

适合新手小白学习的web前端开发教学大纲_QF _WEB的博客-程序员ITS203

Web前端几年是越来越火热了,让更多的人看到了前端的高薪资,更看到了前端行业的发展前景,所以纷纷投入到学习前端技术学习中来,那么有没有一份适合新手小白学习的web前端开发教学大纲提供给大家学习呢?想要学好web前端开发,有一份详细的学习课程大纲必不可少的,今天给大家分享千锋教育这份适合所有新手学习的web前端开发教学大纲,相信有这样一份学习大纲会让你的学习之路更清晰。   ...

【json】json-c接口_arvik的博客-程序员ITS203_json_c

json、json-c、jsoncpp是3套不同的代码,其中的函数接口也大不一样,其中jsoncpp针对c++语言编写的。json-c比json要复杂一些,处理、容错能力稍强一些。json-c的api介绍:json_object.h文件常用的api/*增加obj的引用计数*/struct json_object* json_object_get(struct json_object *obj)

REVERSE-COMPETITION-HGAME2022-Week1_P1umH0的博客-程序员ITS203

REVERSE-COMPETITION-HGAME2022Week1easyasmcreakmeFlag Checker猫头鹰是不是猫Week1easyasm程序一开始将si设置为0,然后si和28比较,如果si小于28则进入循环循环体中,si作为下标,从输入中取值存入al,然后al左移4位,压入栈保持下标si不变,再重新从输入中取一次值存入al,然后al右移4位右移4位后的结果与之前左移4位的结果相加,然后异或0x17,最后与已知比较整个过程相当于将输入中的每一个值的高4位和低4位交换,然

.net中Task.WaitAll和WaitAny同步的等待Task完成_Huey-Chan的博客-程序员ITS203_waitany 计时间隔

前面讲了《.net中async/await异步编程》,如果方法中使用了多个异步方法,该如何同步的等待Task完成?Task.WaitAll 等待提供的所有 System.Threading.Tasks.Task 对象完成执行过程。DownLoadTest dwtest = new DownLoadTest();CancellationTokenSource cts = new Cancellat..._1671465600

oracle grant的用法,oracle grant总结_Shine Xue的博客-程序员ITS203

从oracle的在线帮助文档来看,grant的语法其实蛮复杂的,不过根据二八法则,我们只需要掌握grant的常见用法就够用了。grant概述grant 允许对象的创建者给某用户或某组或所有用户(public)某些特定的权限.对象创建后,除了创建者外,除非创建者赋予(grant)其他用户访问权限,否则其他用户没有访问该对象的权限。一旦用户有某对象的权限,他就可以使用那个特权。不需要给创建者赋予(gr...

随便推点

【postgreSQL】 安装问题: Failed to load sql modules into the database cluster_狂杀傲骨的博客-程序员ITS203

在安装 postgreSQL 的过程中,一开始由于账户用户名为中文,导致无法安装(安装路径中有中文也会发生此问题),后又在即将安装成功时提示Failed to load sql modules into the database cluster我用的是 12.9。心态崩了,从昨天下午一直找到今天下午。网上的教程中,核心是安装文件夹的权限问题(主要是其下安装时生成的 data 的权限问题)。但是对于我这台电脑而言(不知道什么原因),即使给了安装目录“完全控制”的权限,在安装时也会发现:目录的读写权限

Object Detection--YOLOv3训练KITTI数据集_佛系土味农孩��的博客-程序员ITS203_yolov3 kitti

参考:https://blog.csdn.net/qq583083658/article/details/86321987#2

oepnssl 关于visual studio 2019依赖项配置,问题 can‘t open config file: /usr/local/ssl/openssl.cnf_初夏花开的博客-程序员ITS203

oepnssl遇到can't open config file: /usr/local/ssl/openssl.cnf解决:1.set OPENSSL_CONF=openssl.cnf2.set OPENSSL_CONF=..目录..\OpenSSL\OpenSSL-Win64\bin\openssl.cfg目录包含openssl.cfg文件下面是成功标志

微服务化之服务拆分与服务发现_粥粥同学的博客-程序员ITS203

文章来自网易云计算首席架构师刘超的个人微信公众号,刘超的通俗云计算微服务化之服务拆分与服务发现一、服务拆分的前提二 服务拆分的时机微服务拆分时机一:提交代码频繁出现大量冲突微服务解决的问题之二,就是高并发。微服务拆分时机三:横向扩展流程复杂,主要业务和次要业务耦合微服务拆分时机四:熔断降级全靠if-else三、服务拆分的方法四、服务拆分的规范服务拆分的规范一:服务拆分最多三层,两次调用服务拆分的...

ffmpeg 移植到 android---阿冬_阿冬专栏的博客-程序员ITS203

ffmpeg 移植到 android来自大牛:http://blog.csdn.net/voipmaker/article/details/6932696一:生成动态库(.so文件)-->环境:操作系统:Ubuntu9.10ffmpeg源码版本:ffmpeg-0.6.1(可以在http://ffmpeg.org/dow

C++ - 将长整型数转换为字符串_做人,最重要的就是开心嘛的博客-程序员ITS203_c++ 长整型转字符串

分享一个大牛的人工智能教程。零基础!通俗易懂!风趣幽默!希望你也加入到人工智能的队伍中来!请点击http://www.captainbed.net/* * Created by Chimomo */#include &amp;lt;iostream&amp;gt;using namespace std;char *convertLongToStr(long L) { int i =...

推荐文章

热门文章

相关标签