Python爬取百度翻译(用python 爬取百度百科内容)

http://www.itjxue.com  2023-03-24 13:42  来源:未知  点击次数: 

如何用python调用百度翻译

#/usr/bin/env?python

#coding=utf8

?

import?httplib

import?md5

import?urllib

import?random

appid?=?'20151113000005349'

secretKey?=?'osubCEzlGjzvw8qdQc41'

?

httpClient?=?None

myurl?=?'/api/trans/vip/translate'

q?=?'apple'

fromLang?=?'en'

toLang?=?'zh'

salt?=?random.randint(32768,?65536)

sign?=?appid+q+str(salt)+secretKey

m1?=?md5.new()

m1.update(sign)

sign?=?m1.hexdigest()

myurl?=?myurl+'?appid='+appid+'q='+urllib.quote(q)+'from='+fromLang+'to='+toLang+'salt='+str(salt)+'sign='+sign

?

try:

????httpClient?=?httplib.HTTPConnection('api.fanyi.baidu.com')

????httpClient.request('GET',?myurl)

?

????#response是HTTPResponse对象

????response?=?httpClient.getresponse()

????print?response.read()

except?Exception,?e:

????print?e

finally:

????if?httpClient:

????????httpClient.close()

在调用百度翻译api之前,您需要申请开发者权限,获取APP ID及密钥。 一个账号只能获得一个APP ID和密钥。

参考价格:若当月翻译字符数≤2百万,免费;若超过2百万字符,按照49元/百万字符支付当月全部翻译字符数费用。

参考?

python百度翻译爬虫

源页面获取的token必先向服务端post过后才有效果,sign是一层加密,token也是,源页面的id有效期长点,post过程用到了base64.encodebytes 以及 AES.CBC 加密等,我就知道这些,py调用js又会效率上不去

python语言翻译的过程是

“输入文本”—“翻译”—“得到译文”。详细步骤如下:

1、先输入文字。

2、首先调用两个需要到的第三方库,设置请求头,因为百度翻译反爬机制,经过观察只加密了sign数据,由代码计算,将js文件保存在根目录下。

3、设置data参数,获取cookies,发送 post请求,返回的是经过‘utf-8’编码后的字符串,我们要对其进行解码,并且转化为字典,直接对数据进行类型转换会报错“NameError: name 'null' is not defined”。

4、在数据(字典)中将我们要的结果提取出来。

(责任编辑:IT教学网)

更多