[英]urllib2.HTTPError: HTTP Error 400: Bad Request
我的代码是这样的
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
我有这本字典
user_all = {1:{0:[],“您喜欢的5首歌曲”:[u'lethe”,u'suliman',u'converting Vegetarians',u'invasion',u'betrayel'],“您喜欢的2作家':[u'ajdar',u'bulent ersoy'],'Facebook帐户链接':[''],'您最喜欢的3部电影':[u'hobbit',u'hobbit 2',u'hobbit 3 '],“您最喜欢的3位歌手”:[u'infected mushroom',u'shiro sagisu',u'disturbed'],“ Timestamp”:[''],“ Age”:[''],“兴趣爱好” :[u'阅读',u'骑马',u'tiger狩猎'],'您最喜欢的3位演员/女演员':[u'gerard巴特勒',u'tom hanks',u'jonny deep'],'选择您喜欢的3种音乐流派”:[u'Blues”,“您喜欢的运动队”:[''],“性别”:[u'male”],“家乡”:[u'istanbul”],“部门”:[u'EEE”],“ Twitter帐户链接”:[''],“您的Sehir学生地址”:[u'talhatemiz@std.segir.edu.tr”],“您最喜欢的3个体育分支” :['',``,''],'选择您喜欢的2种图书类型':[u'Fantasy,Short Story Collections \\ xa0'],'您喜欢的2种导演':[u'guy riche',u' david o runnell']},2:{0:[],'您的收藏夹 orite 5首歌曲”:[u'Belief',u'在燃烧室中慢舞',u'seni cok istiyorum',u'再喝一杯咖啡',u'simple man'],“您最喜欢的2位作家” :[u'JK罗琳',u'Sabahattin Ali'],'Facebook帐户链接':[u'dgsdg'],“您最喜欢的三部电影”:[u'Hobbit”,u'指环王', u'araba'],“您最喜欢的3位歌手”:[u'John Mayer',u'Yavuz Cetin',u'Led Zeppelin'],“ Timestamp”:[''],“ Age”:[“] ,“爱好”:[u'弹吉他”,u'阅读书,u'futbol oynamak'],“您最喜欢的3位演员/女演员”:[u'Johnny Depp',u'Natalie Portman',u'Mila Kunis”],“选择您喜欢的3种音乐类型”:[u'Blues,Indie,Rock'],“您喜欢的运动队”:[u'dsgg”],“性别”:[u'Male”],“故乡”:[u'Artvin”],“部门”:[u'EEE”],“ Twitter帐户链接”:[u'sdgsg”],“您的希尔大学学生地址”:[u'Burak Altun”],“您最喜欢的3个体育分支':[u'asd',u'asd',u'as \\ u015ffkndl'],“选择您喜欢的2种图书类型”:[u'动作与冒险,科幻小说”,“您最喜欢的2直接 ors':[u'Steven Spielberg',u'Quentin Tarantino']}}
我编码这个达到每个字
for i in user_all.values():
for j in i.values():
for m in j:
self.translate(m, to_langage="en", langage="auto")
我收到此错误
追溯(最近一次通话):
文件“ /Users/baltun/Documents/workspace/SimSurve/src/Reader/trying_translate.py”,第99行,印刷版read.start_reading()
在start_reading self.translate(m,to_langage =“ zh-cn”,langage =“ auto”)中的文件“ /Users/baltun/Documents/workspace/SimSurve/src/Reader/trying_translate.py”,第92行
在翻译页面中,文件“ /Users/baltun/Documents/workspace/SimSurve/src/Reader/trying_translate.py”,第38行= urllib2.urlopen(request).read()
文件“ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第126行,在urlopen中返回_opener.open(URL,数据,超时)
文件“ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第397行,以开放式响应= meth(req,response)
在http_response'http'中的文件“ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第510行,请求,响应,代码,msg,hdr)
文件“ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第435行,错误返回self._call_chain(* args)
_call_chain结果= func(* args)中的文件“ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”,第369行
在http_error_default中的文件“ /Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/urllib2.py”第518行中,引发HTTPError(req.get_full_url(),代码,msg,hdrs,fp)urllib2。 HTTPError:HTTP错误400:错误的请求
你能帮助我吗?
# 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
好的,此示例有效,但是我发现了为什么出现400错误。
在您的user_all
定义的字典中,有一个字符串u'Yavuz Cetin'
,其中包含Yavu
。
在土耳其语中, Yavu
一词表示slow
,因此该词的Google翻译返回HTTP 400错误!
为了解决这个问题,您可能需要在user_all
定义的词典中更改此单词或与google联系!
看一下translate.google.com/m?hl=zh-CN&sl=auto&tl=en&ie=UTF-8&prev=_m&q=yavu和google.com/search?q=google%20translate%20yavu%20400
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.