鱼C论坛

 找回密码
 立即注册
楼主: 小甲鱼

[技术交流] Python编码问题的解决方案总结

  [复制链接]
发表于 2018-3-7 12:09:48 | 显示全部楼层
好帖子!!感谢楼主!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-3-24 16:13:15 | 显示全部楼层
请问一下,我看了零基础入门学习python的“一只爬虫的自我修养2”,讲有道翻译的,我之后想再练习一下就用了百度翻译,出来的结果是{"error":997,"from":"en","to":"zh","query":"this"},请问是怎么回事呀,求解答
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-6 21:39:09 | 显示全部楼层
研究中
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-8-2 10:03:10 | 显示全部楼层
好。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-8-16 11:08:59 | 显示全部楼层
感谢分享的好东西。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-9 01:24:26 | 显示全部楼层
非常有用!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-10 17:03:07 | 显示全部楼层
nice!!!!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-26 11:16:20 | 显示全部楼层
============ RESTART: C:\Users\zhangyuanli\Desktop\translation.py ============
{"errorCode":50}
>>> import urllib.request
import urllib.parse


url="http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
data={}
data['i']='i love fishc.com'
data['from']='AUTO'
data['to']='AUTO'
data['smartresult']='dict'
data['client']='fanyideskweb'
data['salt']='1537863642103'
data['sign']='b9e371ea87a15b977e2202c10f6cc272'
data['doctype']='json'
data['version']='2.1'
data['keyfrom']='fanyi.web'
data['action']='FY_BY_CLICKBUTTION'
data['typoResult']='false'

data=urllib.parse.urlencode(data).encode('utf-8')
response=urllib.request.urlopen(url,data)
html=response.read().decode('utf-8')
print(html)





============ RESTART: C:\Users\zhangyuanli\Desktop\translation.py ============
{"errorCode":50}
>>> import json
>>> json.loads(html)
{'errorCode': 50}
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-26 11:23:10 | 显示全部楼层
import urllib.request
import urllib.parse
import json

content=input('请输入待翻译的内容:')
url="http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
data={}
data['i']=content
data['from']='AUTO'
data['to']='AUTO'
data['smartresult']='dict'
data['client']='fanyideskweb'
data['salt']='1537863642103'
data['sign']='b9e371ea87a15b977e2202c10f6cc272'
data['doctype']='json'
data['version']='2.1'
data['keyfrom']='fanyi.web'
data['action']='FY_BY_CLICKBUTTION'
data['typoResult']='false'

data=urllib.parse.urlencode(data).encode('utf-8')
response=urllib.request.urlopen(url,data)
html=response.read().decode('utf-8')

target=json.loads(html)
target=target['translationResult'][0][0]['tgt']
print(target)

请输入待翻译的内容:小甲鱼
Traceback (most recent call last):
  File "C:\Users\zhangyuanli\Desktop\translation.py", line 26, in <module>
    target=target['translationResult'][0][0]['tgt']
KeyError: 'translationResult'
>>>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-26 11:35:31 | 显示全部楼层
import urllib.request
import urllib.parse
import json

content=input('请输入待翻译的内容:')
url="http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule"
head={}
head['User-Agent']='Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.104 Safari/537.36 Core/1.53.4882.400 QQBrowser/9.7.13036.400'
data={}
data['i']=content
data['from']='AUTO'
data['to']='AUTO'
data['smartresult']='dict'
data['client']='fanyideskweb'
data['salt']='1537863642103'
data['sign']='b9e371ea87a15b977e2202c10f6cc272'
data['doctype']='json'
data['version']='2.1'
data['keyfrom']='fanyi.web'
data['action']='FY_BY_CLICKBUTTION'
data['typoResult']='false'

data=urllib.parse.urlencode(data).encode('utf-8')
req=urllib.request.Request(url,data,head)
response=urllib.request.urlopen(req)
html=response.read().decode('utf-8')

target=json.loads(html)
target=target['translateResult'][0][0]['tgt']
print(target)



============ RESTART: C:\Users\zhangyuanli\Desktop\translation.py ============
请输入待翻译的内容:love
Traceback (most recent call last):
  File "C:\Users\zhangyuanli\Desktop\translation.py", line 29, in <module>
    target=target['translateResult'][0][0]['tgt']
KeyError: 'translateResult'
>>>


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-26 16:00:34 | 显示全部楼层
>>>
============= RESTART: C:\Users\zhangyuanli\Desktop\proxy_eg.py =============
Traceback (most recent call last):
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 1318, in do_open
    encode_chunked=req.has_header('Transfer-encoding'))
  File "C:\Users\zhangyuanli\Anaconda3\lib\http\client.py", line 1239, in request
    self._send_request(method, url, body, headers, encode_chunked)
  File "C:\Users\zhangyuanli\Anaconda3\lib\http\client.py", line 1285, in _send_request
    self.endheaders(body, encode_chunked=encode_chunked)
  File "C:\Users\zhangyuanli\Anaconda3\lib\http\client.py", line 1234, in endheaders
    self._send_output(message_body, encode_chunked=encode_chunked)
  File "C:\Users\zhangyuanli\Anaconda3\lib\http\client.py", line 1026, in _send_output
    self.send(msg)
  File "C:\Users\zhangyuanli\Anaconda3\lib\http\client.py", line 964, in send
    self.connect()
  File "C:\Users\zhangyuanli\Anaconda3\lib\http\client.py", line 936, in connect
    (self.host,self.port), self.timeout, self.source_address)
  File "C:\Users\zhangyuanli\Anaconda3\lib\socket.py", line 704, in create_connection
    for res in getaddrinfo(host, port, 0, SOCK_STREAM):
  File "C:\Users\zhangyuanli\Anaconda3\lib\socket.py", line 745, in getaddrinfo
    for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno 11004] getaddrinfo failed

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Users\zhangyuanli\Desktop\proxy_eg.py", line 15, in <module>
    response=urllib.request.urlopen(url)
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 223, in urlopen
    return opener.open(url, data, timeout)
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 526, in open
    response = self._open(req, data)
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 544, in _open
    '_open', req)
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 504, in _call_chain
    result = func(*args)
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 1346, in http_open
    return self.do_open(http.client.HTTPConnection, req)
  File "C:\Users\zhangyuanli\Anaconda3\lib\urllib\request.py", line 1320, in do_open
    raise URLError(err)
urllib.error.URLError: <urlopen error [Errno 11004] getaddrinfo failed>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-27 20:56:26 | 显示全部楼层
又学到了 支持
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-6 11:04:16 | 显示全部楼层
谢谢楼主的分享!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-11-6 11:05:21 | 显示全部楼层
旋转风 发表于 2015-12-10 14:34
看一些其他资料介绍,现在的Python3.X开始用字符串类型(str)来代替Unicode类型了,省去了不少编码问题:lo ...

字符串在python的内部表示就是Unicode编码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-19 09:00:11 | 显示全部楼层

                               
登录/注册后可看大图
    请问大神们,哪里出错了,我打印出来总是提示translateresult error
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-30 23:06:41 | 显示全部楼层
收下了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-12-31 10:38:00 | 显示全部楼层
非常总要的知识
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-2-2 07:41:37 | 显示全部楼层
解决了我的困惑
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-6-11 16:47:02 | 显示全部楼层
学习收藏了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-7-7 17:39:08 | 显示全部楼层
Python3都不用这些转换,直接可以显示!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-23 05:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表