环境:win7 + python 3.5.2
问题描述:在程序中使用google translate API将文本翻译为另一种语言
源码(适用于python 3)
#coding:utf-8
import re
import requests
def translate(text, sl, tl):
#sl: source language
#中文:zh-CN
#英文:en
#日文:ja
#自动检测:auto
#tl:target language
#中文:zh-CN
#英文:en
#日文:ja
url='http://translate.google.cn'
values = {'sl':sl,'tl':tl,'q':text}
html= requests.get(url, data)
p=re.compile(r"TRANSLATED_TEXT='(.*)';var ctr,")
m=p.search(html.text)
text_tran=m.group(0).strip(';')
return text_tran
上述代码参考了http://blog.csdn.net/lrita/article/details/51298227 (不适用于python 3)。改动主要包括:用requests替代urllib2,改写value中key。这里稍作整理。
requests的基本使用
基本请求
#coding:utf-8
import requests
url = "www.baidu.com"
r = requests.get(url)
print(t.text)
带参数请求(以两个参数key1,key2为例)
#coding:utf-8
import requests
url = "www.baidu.com"
value = {key1:val1, key2:val2}
r = requests.get(url, value)
print(t.text)
模拟登陆
#-*- coding:utf-8 -*-
import requests
url1 = 'http://www.exanple.com/login'#登陆地址
url2 = "http://www.example.com/main"#需要登陆才能访问的地址
data={"user":"user","password":"pass"}
headers = { "Accept":"text/html,application/xhtml+xml,application/xml;",
"Accept-Encoding":"gzip",
"Accept-Language":"zh-CN,zh;q=0.8",
"Referer":"http://www.example.com/",
"User-Agent":"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
}
res1 = requests.post(url1, data=data, headers=headers)
res2 = requests.get(url2, cookies=res1.cookies, headers=headers)
print res2.content#获得二进制响应内容
print res2.raw#获得原始响应内容,需要stream=True
print res2.raw.read(50)
print type(res2.text)#返回解码成unicode的内容
print res2.url
print res2.history#追踪重定向
print res2.cookies
print res2.cookies['example_cookie_name']
print res2.headers
print res2.headers['Content-Type']
print res2.headers.get('content-type')
print res2.json#讲返回内容编码为json
print res2.encoding#返回内容编码
print res2.status_code#返回http状态码
print res2.raise_for_status()#返回错误状态码