Python论坛  - 讨论区

标题:[python-chinese] 关于baidu下载mp3的问题

2006年11月22日 星期三 20:18

fdu.xiaojf在gmail.com fdu.xiaojf在gmail.com
星期三 十一月 22 20:18:14 HKT 2006

前不久看到版面上有一个下载mp3的程序,挺好用的.看了一下,有一个问题不太懂.

直接搜索之后得到的baidu的页面是用urllib2.urlopen()来下载下来的,然后从里 
面提取出来歌曲的链接之后,比如下面这样的链接:

http://202.108.23.172/m?ct=134217728&tn;=baidusg,\xc1\xb5\xd7\xc5\xb6\xe0\xcf\xb2\xbb\xb6%20%20\xc9\xf1\xb5\xf1\xcf\xc0\xc2\xc2&word;=mp3,http://www.odwan.com/UploadFiles/Y2JjamZmaHFqZWNmbWdwazE$.mp3,,[%C1%BA%BE%B2%C8%E3+%C1%B5%D7%C5%B6%E0%CF%B2%BB%B6]&lm;=16777216

复制到浏览器的地址栏,就可以打开网页,用wget也可以下载下来,为什么用python 
的urllib2.urlopen(url)就不行呢?

谢谢.



[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月22日 星期三 23:06

大熊 bearsprite在gmail.com
星期三 十一月 22 23:06:57 HKT 2006

你这url可以使用urlopen的

不过我在做baidu的下载工具,知道有些url不行是因为url中有中文

2006/11/22, fdu.xiaojf在gmail.com <fdu.xiaojf在gmail.com>:
>
> 前不久看到版面上有一个下载mp3的程序,挺好用的.看了一下,有一个问题不太懂.
>
> 直接搜索之后得到的baidu的页面是用urllib2.urlopen()来下载下来的,然后从里
> 面提取出来歌曲的链接之后,比如下面这样的链接:
>
>
> http://202.108.23.172/m?ct=134217728&tn;=baidusg,\xc1\xb5\xd7\xc5\xb6\xe0\xcf\xb2\xbb\xb6%20%20\xc9\xf1\xb5\xf1\xcf\xc0\xc2\xc2&word;=mp3,http://www.odwan.com/UploadFiles/Y2JjamZmaHFqZWNmbWdwazE$.mp3,,[%C1%BA%BE%B2%C8%E3+%C1%B5%D7%C5%B6%E0%CF%B2%BB%B6]&lm;=16777216
>
> 复制到浏览器的地址栏,就可以打开网页,用wget也可以下载下来,为什么用python
> 的urllib2.urlopen(url)就不行呢?
>
> 谢谢.
>
>
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
> Detail Info: http://python.cn/mailman/listinfo/python-chinese




-- 
茫茫人海,你是我的最爱
-------------- 下一部分 --------------
一个HTML附件被移除...
URL: http://python.cn/pipermail/python-chinese/attachments/20061122/bbb4a182/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月22日 星期三 23:10

天才狐狸 mem_fox在263.net
星期三 十一月 22 23:10:04 HKT 2006

 请问我用string的encode方法,这样有什么错误吗?

>>> a = '天才狐狸'

>>> a

'\xcc\xec\xb2\xc5\xba\xfc\xc0\xea'

>>> a.encode('utf-8')

 

Traceback (most recent call last):

  File "", line 1, in -toplevel-

    a.encode('utf-8')

UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 0:
ordinal not in range(128)

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061122/3f892a6f/attachment.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月22日 星期三 23:22

fdu.xiaojf在gmail.com fdu.xiaojf在gmail.com
星期三 十一月 22 23:22:50 HKT 2006

天才狐狸 wrote:
>
> 请问我用string的encode方法,这样有什么错误吗?
>
> >>> a = '天才狐狸'
>
> >>> a
>
> '\xcc\xec\xb2\xc5\xba\xfc\xc0\xea'
>
> >>> a.encode('utf-8')
>
> Traceback (most recent call last):
>
> File "", line 1, in -toplevel-
>
> a.encode('utf-8')
>
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position
> 0: ordinal not in range(128)
>
你应该先用gbk解码,然后再转换成utf-8

>>> a = '天才狐狸'
>>> a
'\xcc\xec\xb2\xc5\xba\xfc\xc0\xea'
>>> a.encode('utf-8')
Traceback (most recent call last):
File "", line 1, in ?
UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 0:
ordinal not in range(128)
>>> a.decode('gbk').encode('utf-8')
'\xe5\xa4\xa9\xe6\x89\x8d\xe7\x8b\x90\xe7\x8b\xb8'
>>>

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月22日 星期三 23:24

清风 paradise.qingfeng在gmail.com
星期三 十一月 22 23:24:11 HKT 2006

>>> s="我"
>>> s
'\xe6\x88\x91'
>>> s.decode("utf-8")
u'\u6211'

On 11/22/06, 天才狐狸 <mem_fox在263.net> wrote:
>
>
>
>
>  请问我用string的encode方法,这样有什么错误吗?
>
> >>> a = '天才狐狸'
>
> >>> a
>
> '\xcc\xec\xb2\xc5\xba\xfc\xc0\xea'
>
> >>> a.encode('utf-8')
>
>
>
> Traceback (most recent call last):
>
>   File "", line 1, in -toplevel-
>
>     a.encode('utf-8')
>
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 0:
> ordinal not in range(128)
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>


-- 
Blog:
http://qingfeng.ushared.com/blog/
http://qingfeng.vox.com/

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月23日 星期四 08:11

gashero harry.python在gmail.com
星期四 十一月 23 08:11:57 HKT 2006

字符串编码分为处理编码和传输编码的。处理编码是一种内部编码,就是unicode,你需要先将字符串转换为内部处理编码,在转换成另外一种传输编码。也就是先转换成unicode,然后在编码。
楼上的说的很有道理:

>>>a="天才狐狸"
>>>a.decode("gbk").encode("utf-8")
或者
>>> unicode(a,"gbk").encode("utf-8")

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月23日 星期四 08:28

rosetta rosettas在gmail.com
星期四 十一月 23 08:28:34 HKT 2006

On 11/22/06, 大熊 <bearsprite在gmail.com> wrote:
> 你这url可以使用urlopen的
>
> 不过我在做baidu的下载工具,知道有些url不行是因为url中有中文

url中的中文应该被转义,否则也不叫url了

>
> 2006/11/22, fdu.xiaojf在gmail.com <fdu.xiaojf在gmail.com >:
> > 前不久看到版面上有一个下载mp3的程序,挺好用的.看了一下,有一个问题不太懂.
> >
> > 直接搜索之后得到的baidu的页面是用urllib2.urlopen ()来下载下来的,然后从里
> > 面提取出来歌曲的链接之后,比如下面这样的链接:
> >
> >
> http://202.108.23.172/m?ct=134217728&tn;=baidusg,\xc1\xb5\xd7\xc5\xb6\xe0\xcf\xb2\xbb\xb6%20%20\xc9\xf1\xb5\xf1\xcf\xc0\xc2\xc2&word;=mp3,http://www.odwan.com/UploadFiles/Y2JjamZmaHFqZWNmbWdwazE$.mp3,,[%C1%BA%BE%B2%C8%E3+%C1%B5%D7%C5%B6%E0%CF%B2%BB%B6]&lm;=16777216
> >
> > 复制到浏览器的地址栏,就可以打开网页,用wget也可以下载下来,为什么用python
> > 的urllib2.urlopen(url)就不行呢?
> >
> > 谢谢.
> >
> >
> > _______________________________________________
> > python-chinese
> > Post: send python-chinese在lists.python.cn
> > Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> > Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> > Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>
>
>
> --
> 茫茫人海,你是我的最爱
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>


-- 
with kind regards

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月23日 星期四 09:03

麦田守望者 qcxhome在gmail.com
星期四 十一月 23 09:03:32 HKT 2006

Please see articles in http://tkdchen.spaces.live.com

they may be help u.

On 11/22/06, 天才狐狸 <mem_fox at 263.net> wrote:
>
>
>
>
>  请问我用string的encode方法,这样有什么错误吗?
>
> >>> a = '天才狐狸'
>
> >>> a
>
> '\xcc\xec\xb2\xc5\xba\xfc\xc0\xea'
>
> >>> a.encode('utf-8')
>
>
>
> Traceback (most recent call last):
>
>   File "", line 1, in -toplevel-
>
>     a.encode('utf-8')
>
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 0:
> ordinal not in range(128)
> _______________________________________________
> python-chinese
> Post: send python-chinese at lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request at lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request at lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>


-- 
GoogleTalk: qcxhome at gmail.com
MSN: qcxhome at hotmail.com
My Space: tkdchen.spaces.live.com
BOINC: boinc.berkeley.edu
中国分布式计算总站: www.equn.com

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月23日 星期四 10:11

Xupeng Yun recordus在gmail.com
星期四 十一月 23 10:11:54 HKT 2006

2006/11/22, fdu.xiaojf at gmail.com <fdu.xiaojf at gmail.com>:
>
> 前不久看到版面上有一个下载mp3的程序,挺好用的.看了一下,有一个问题不太懂.
>
> 直接搜索之后得到的baidu的页面是用urllib2.urlopen()来下载下来的,然后从里
> 面提取出来歌曲的链接之后,比如下面这样的链接:
>
>
> http://202.108.23.172/m?ct=134217728&tn;=baidusg,\xc1\xb5\xd7\xc5\xb6\xe0\xcf\xb2\xbb\xb6%20%20\xc9\xf1\xb5\xf1\xcf\xc0\xc2\xc2&word;=mp3,http://www.odwan.com/UploadFiles/Y2JjamZmaHFqZWNmbWdwazE$.mp3,,[%C1%BA%BE%B2%C8%E3+%C1%B5%D7%C5%B6%E0%CF%B2%BB%B6]&lm;=16777216
>
> 复制到浏览器的地址栏,就可以打开网页,用wget也可以下载下来,为什么用python
> 的urllib2.urlopen(url)就不行呢?
>
> 谢谢.
>

因为取出的这个链接里面包含有空格和中文,理论上来讲用quote来编码是没有问题的,但是实际上我在做的时候编码后打不开,于是就进行了相应的处理,把无关紧要的空格和中文给剔除了。
-- 
I like Python & Linux.
Blog: http://recordus.cublog.cn
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://python.cn/pipermail/python-chinese/attachments/20061123/9353e8d9/attachment.htm 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月23日 星期四 16:04

Brightman fenyon在126.com
星期四 十一月 23 16:04:07 HKT 2006

¶ÔÓÚÒ»¸ö×Ö·û´®£¬ÎÒÃÇËƺõºÜÄÑÖªµÀËü²ÉÓÃʲô×Ö·û¼¯¡£

>>> a='¶ÔÓÚÒ»¸ö×Ö·û´®'                               ÕâÈ¡¾öÓÚÄãµÄϵͳ»òpythonʹÓõÄÊÇʲô×Ö·û¼¯£¬
>>> a=u'¶ÔÓÚÒ»¸ö×Ö·û´®'                             ÏÔʾ¸æËßʹÓÃunicode

ÊÇÕâÑù°É£¿ 



Brightman
2006-11-23



·¢¼þÈË£º ÂóÌïÊØÍûÕß
·¢ËÍʱ¼ä£º 2006-11-23 09:03:49
ÊÕ¼þÈË£º python-chinese在lists.python.cn
³­ËÍ£º 
Ö÷Ì⣺ Re: [python-chinese]Python±àÂëÎÊÌâ

Please see articles in http://tkdchen.spaces.live.com

they may be help u.

On 11/22/06, Ìì²ÅºüÀê  <mem_fox在263.net > wrote:
>
>
>
>
>  ÇëÎÊÎÒÓÃstringµÄencode·½·¨£¬ÕâÑùÓÐʲô´íÎóÂð£¿
>
>  > > > a = 'Ìì²ÅºüÀê'
>
>  > > > a
>
> '\xcc\xec\xb2\xc5\xba\xfc\xc0\xea'
>
>  > > > a.encode('utf-8')
>
>
>
> Traceback (most recent call last):
>
>   File " ", line 1, in -toplevel-
>
>     a.encode('utf-8')
>
> UnicodeDecodeError: 'ascii' codec can't decode byte 0xcc in position 0:
> ordinal not in range(128)
> _______________________________________________
> python-chinese
> Post: send python-chinese在lists.python.cn
> Subscribe: send subscribe to
> python-chinese-request在lists.python.cn
> Unsubscribe: send unsubscribe to
> python-chinese-request在lists.python.cn
> Detail Info:
> http://python.cn/mailman/listinfo/python-chinese
>


-- 
GoogleTalk: qcxhome在gmail.com
MSN: qcxhome在hotmail.com
My Space: tkdchen.spaces.live.com
BOINC: boinc.berkeley.edu
Öйú·Ö²¼Ê½¼ÆËã×ÜÕ¾: www.equn.com
_______________________________________________
python-chinese
Post: send python-chinese在lists.python.cn
Subscribe: send subscribe to python-chinese-request在lists.python.cn
Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
Detail Info: http://python.cn/mailman/listinfo/python-chinese
-------------- 下一部分 --------------
Ò»¸öHTML¸½¼þ±»ÒƳý...
URL: http://python.cn/pipermail/python-chinese/attachments/20061123/de810e65/attachment-0001.html 

[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

2006年11月23日 星期四 16:08

cun heise cunheise在hotmail.com
星期四 十一月 23 16:08:42 HKT 2006

use this code:
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

_________________________________________________________________
与世界各地的朋友进行交流,免费下载  Live Messenger; 
http://get.live.com/messenger/overview 


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号