Python urllib2.HTTPError:HTTP错误400:错误请求

Python urllib2.HTTPError:HTTP错误400:错误请求,python,entity-framework,google-translate,Python,Entity Framework,Google Translate,我的代码是这样的 def translate(self, to_translate, to_langage="auto", langage="auto"): '''Return the translation using google translate you must shortcut the langage you define (French = fr, English = en, Spanish = es, etc...) if you don't defin

我的代码是这样的

def translate(self, to_translate, to_langage="auto", langage="auto"):

 '''Return the translation using google translate
    you must shortcut the langage you define (French = fr, English = en, Spanish = es,    etc...)
    if you don't define anything it will detect it or use english by default
    Example:
    print(translate("salut tu vas bien?", "en"))
    hello you alright?'''

    agents = {'User-Agent': "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"}


    before_trans = 'class="t0">'

    link = "http://translate.google.com/m?hl=%s&sl=%s&q=%s" % (to_langage, langage, urllib.quote(to_translate.encode('utf8')))

    request = urllib2.Request(link, headers=agents)

    page = urllib2.urlopen(request).read()
    result = page[page.find(before_trans) + len(before_trans):]
    result = result.split("<")[0]

    return result
我得到了这个错误

回溯(最近一次呼叫最后一次):

文件“/Users/baltun/Documents/workspace/SimSurve/src/Reader/trying_translate.py”,第99行,在 打印读取。开始读取()

文件“/Users/baltun/Documents/workspace/SimSurve/src/Reader/trying_translate.py”,第92行,开始阅读 self.translate(m,to_langage=“en”,langage=“auto”)

文件“/Users/baltun/Documents/workspace/SimSurve/src/Reader/trying_translate.py”,translate中第38行 page=urllib2.urlopen(请求).read()

urlopen中的文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第126行 return\u opener.open(url、数据、超时)

文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第397行,打开 响应=方法(请求,响应)

文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第510行,在http_响应中 “http”、请求、响应、代码、消息、hdrs)

文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第435行出错 返回自我。调用链(*args)

文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第369行,在调用链中 结果=func(*args)

文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第518行,默认为http\u error\u raise HTTPError(请求获取完整url(),代码,消息,hdrs,fp) urllib2.HTTPError:HTTP错误400:错误请求

你能帮我吗?

\code>编码:utf8
# coding: utf8
import urllib
import urllib2

agents = {
    'User-Agent': "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"}

to_langage, langage, to_translate = 'en', 'fa',  u'سلام بر جهان'

before_trans = 'class="t0">'

link = "http://translate.google.com/m?hl=%s&sl=%s&q=%s" % (to_langage, langage, urllib.quote(to_translate.encode('utf8')))

request = urllib2.Request(link, headers=agents)

page = urllib2.urlopen(request).read()
result = page[page.find(before_trans) + len(before_trans):]
result = result.split("<")[0]

print(result)

Hello World
导入URL库 导入urllib2 代理={ “用户代理”:“Mozilla/4.0(兼容;MSIE 6.0;Windows NT 5.1;SV1;.NET CLR 1.1.4322;.NET CLR 2.0.50727;.NET CLR 3.0.04506.30)” 到语言,到语言,到翻译:'en','fa',u' 在_trans='class=“t0”>'之前 链接=”http://translate.google.com/m?hl=%s&sl=%s&q=%s“%(to_langage,langage,urllib.quote(to_translate.encode('utf8'))) request=urllib2.request(链接,头=代理) page=urllib2.urlopen(请求).read() 结果=页面[页面.查找(在转换之前)+len(在转换之前):]
result=result.split("我想你必须对你的
链接
字符串进行编码。我明白为什么会发生这种情况。它只能翻译一个单词,如果它不能翻译一个以上的单词。我如何解决这个问题?你能给语言添加
值、
语言
值和
值以将
翻译为你的代码吗?我下面的回答对我很有用。我编辑了问题@OmidRahaOk,你说得对,这个url返回了一个
400错误请求
。现在我遇到了这个问题@OmidRaha AttributeError:“float”对象没有属性“encode”
# coding: utf8
import urllib
import urllib2

agents = {
    'User-Agent': "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30)"}

to_langage, langage, to_translate = 'en', 'fa',  u'سلام بر جهان'

before_trans = 'class="t0">'

link = "http://translate.google.com/m?hl=%s&sl=%s&q=%s" % (to_langage, langage, urllib.quote(to_translate.encode('utf8')))

request = urllib2.Request(link, headers=agents)

page = urllib2.urlopen(request).read()
result = page[page.find(before_trans) + len(before_trans):]
result = result.split("<")[0]

print(result)

Hello World