【python】使用urllib,requests调google translate API

环境: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()#返回错误状态码
Python中的urllibrequests是两个常用的网络请求库。urllibPython标准库中的模块,提供了一些用于进行网络请求的函数和类,使用简单但功能相对较少。而requests是一个第三方库,功能更丰富,提供了更方便的API来发送HTTP请求和处理响应。 在使用urllib进行GET请求时,可以使用urlopen方法来发送请求并获取响应,通过用read方法来读取响应数据,然后使用decode方法进行解码。以下是一个示例: import urllib.request response = urllib.request.urlopen('http://www.baidu.com') print(response.read().decode()) 而对于POST请求urllib并没有单独提供相应的函数,而是通过构建Request对象来传递data参数来实现。具体的示例代码如下: import urllib.parse import urllib.request url = 'http://www.someserver.com/cgi-bin/register.cgi' values = {'name': 'Michael Foord', 'location': 'Northampton', 'language': 'Python'} data = urllib.parse.urlencode(values) data = data.encode('ascii') req = urllib.request.Request(url, data) with urllib.request.urlopen(req) as response: the_page = response.read() 另外,requests库提供了更加方便的API来发送GET和POST请求,并处理HTTP响应。以下是一个使用requests库的示例代码: import requests resp = requests.get('http://www.baidu.com') print(resp.text) 可以看到,requests使用更加简洁明了,通过用get方法来发送GET请求并获取响应,然后通过text属性来获取响应内容。 综上所述,urllibrequests都是常用的Python网络请求库,根据需求选择适合的库来进行网络请求操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python 网络请求模块 urllibrequests](https://blog.csdn.net/aifeier1982/article/details/101950448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值