鱼C论坛

 找回密码
 立即注册
查看: 5778|回复: 21

有懂urllib的吗?

[复制链接]
发表于 2014-8-27 11:09:27 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 shuoye 于 2014-8-27 11:10 编辑

我看论坛有个pyqt写的词典(http://bbs.fishc.com/thread-51358-1-1.html),由于我的机器上没有pyqt我下源码没里面有安装文件不知道怎么装:sweat:用esay install上找不到pip也找不到,所以我就把他改成了easygui的了。
运行后查询英文没什么问题用中文就会出现编码错误我,尝试转码无效后就不知道该怎么弄了。谁来帮我改改。
  1. #/usr/bin/env python3

  2. import easygui as g
  3. import json
  4. import re
  5. import urllib.request
  6. import sys



  7. def translate():
  8.         url = 'http://fanyi.youdao.com/openapi.do'
  9.         key = '695028818'
  10.         keyfrom = 'nicomochina'
  11.         words = g.enterbox('请输入要翻译的文字', title = '有到翻译')
  12.         try:
  13.                 url1 = url + '?keyfrom=' + keyfrom + '&key='+key + '&type=data&doctype=json&version=1.1&q=' + words
  14.         except TypeError:
  15.                 return 1
  16.         page = urllib.request.urlopen(url1)
  17.         result = page.read().decode("utf8")
  18.         json_result = json.loads(result)
  19.         json_result = json_result["translation"]
  20.         g.msgbox(json_result)

  21. while 1:
  22.         if translate():
  23.                 sys.exit(0)
复制代码




Screenshot from 2014-08-26 20^	^I.png


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2014-8-27 14:26:44 | 显示全部楼层
注意力全被这系统吸引了  什么系统  LINUX系统吗
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 15:11:09 | 显示全部楼层
大神! 你这是什么系统啊!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 17:09:35 | 显示全部楼层
试试这样:

  1. result = page.read().decode(response.headers.get_content_charset())
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-27 18:43:41 | 显示全部楼层

不行啊,这个是那个模块里的啊,提示找不到response
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 20:37:16 | 显示全部楼层
shuoye 发表于 2014-8-27 18:43
不行啊,这个是那个模块里的啊,提示找不到response

result = page.read().decode(page.headers.get_content_charset())
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 21:22:04 | 显示全部楼层
青玄 发表于 2014-8-27 15:11
大神! 你这是什么系统啊!

这个是ubuntu系统!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 21:23:55 | 显示全部楼层
那个pyqt写的词典只有英文——————>中文的功能哦!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 21:35:40 | 显示全部楼层
抱歉,之前没有看代码。会报错主要是因为 openurl() 只接受英文的地址,出现中文需要使用 urllib.parse.quote() 过滤一下,代码已改:

  1. #/usr/bin/env python3

  2. import easygui as g
  3. import json
  4. import re
  5. import urllib.request
  6. import urllib.parse
  7. import sys



  8. def translate():
  9.     url = 'http://fanyi.youdao.com/openapi.do'
  10.     key = '695028818'
  11.     keyfrom = 'nicomochina'
  12.     words = g.enterbox('请输入要翻译的文字', title = '有道翻译')
  13.     try:
  14.         url1 = url + '?keyfrom=' + keyfrom + '&key='+key + '&type=data&doctype=json&version=1.1&q=' + urllib.parse.quote(words)
  15.     except:
  16.         return 1
  17.    
  18.     page = urllib.request.urlopen(url1)
  19.     result = page.read().decode('utf-8', 'ignore')
  20.     json_result = json.loads(result)
  21.     json_result = json_result["translation"]
  22.     g.msgbox(json_result)

  23. while 1:
  24.     if translate():
  25.         sys.exit(0)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 21:36:32 | 显示全部楼层
~风介~ 发表于 2014-8-27 21:23
那个pyqt写的词典只有英文——————>中文的功能哦!

也可以的,会报错主要是因为 openurl() 只接受英文的地址,出现中文需要使用 urllib.parse.quote() 过滤一下即可。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 21:50:29 | 显示全部楼层
小甲鱼 发表于 2014-8-27 21:36
也可以的,会报错主要是因为 openurl() 只接受英文的地址,出现中文需要使用 urllib.parse.quote() 过滤 ...

谢谢大大!
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-27 22:11:06 | 显示全部楼层
小甲鱼 发表于 2014-8-27 21:36
也可以的,会报错主要是因为 openurl() 只接受英文的地址,出现中文需要使用 urllib.parse.quote() 过滤 ...

额我已经到方法了,就是要把中文转换成符合url编码的格式
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-27 22:11:45 | 显示全部楼层

Ok我已经把你的程序改好了
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-27 22:34:56 | 显示全部楼层
shuoye 发表于 2014-8-27 22:11
Ok我已经把你的程序改好了

我也改好了!
http://bbs.fishc.com/thread-51358-1-1.html
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-28 12:44:49 | 显示全部楼层
ubuntu
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-8-28 23:04:19 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-30 14:34:20 | 显示全部楼层
青草 发表于 2014-8-27 14:26
注意力全被这系统吸引了  什么系统  LINUX系统吗

ubuntu
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-30 14:34:51 | 显示全部楼层
青玄 发表于 2014-8-27 15:11
大神! 你这是什么系统啊!

ubuntu
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-8-31 21:20:48 | 显示全部楼层

Ubuntu(乌班图)是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词,意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观,类似华人社会的“仁爱”思想。Ubuntu基于Debian发行版和GNOME桌面环境,与Debian的不同在于它每6个月会发布一个新版本。Ubuntu的目标在于为一般用户提供一个最新的、同时又相当稳定的主要由自由软件构建而成的操作系统。Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。2013年1月3日,Ubuntu正式发布面向智能手机的移动操作系统。

懂了  还是有点LINUX系统底子
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-9-1 07:09:15 | 显示全部楼层
不是很清楚啊~~~~~~
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-17 03:11

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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