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