A question about unicode() function

2006-12-31 Thread JTree
Hi,all
 I encountered a problem when using unicode() function to fetch a
webpage, I don't know why this happenned.
 My codes and error messages are:


Code:
#!/usr/bin/python
#Filename: test.py
#Modified: 2006-12-31

import cPickle as p
import urllib
import htmllib
import re
import sys

def funUrlFetch(url):
lambda url:urllib.urlopen(url).read()

objUrl = raw_input('Enter the Url:')
content = funUrlFetch(objUrl)
content = unicode(content,"gbk")
print content
content.close()


error message:

C:\WINDOWS\system32\cmd.exe /c python test.py
Enter the Url:http://www.msn.com
Traceback (most recent call last):
  File "test.py", line 16, in ?
content = unicode(content,"gbk")
TypeError: coercing to Unicode: need string or buffer, NoneType found
shell returned 1
Hit any key to close this window...

Any suggestions would be appreciated!

Thanks!

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: A question about unicode() function

2006-12-31 Thread JTree
Hi,

I changed my codes to:

#!/usr/bin/python
#Filename: test.py
#Modified: 2007-01-01

import cPickle as p
import urllib
import htmllib
import re
import sys

funUrlFetch =  lambda url:urllib.urlopen(url).read()

objUrl = raw_input('Enter the Url:')
content = funUrlFetch(objUrl)
content = content.encode('gb2312','ignore')
print content
content.close()

I used "ignore" to deal with the data lose, but it still caused a
error:

C:\WINDOWS\system32\cmd.exe /c python tianya.py
Enter the Url:http://www.tianya.cn
Traceback (most recent call last):
  File "tianya.py", line 17, in ?
content = content.encode('gb2312','ignore')
UnicodeDecodeError: 'ascii' codec can't decode byte 0xbb in position
88: ordinal not in range(128)
shell returned 1
Hit any key to close this window...

My python version is 2.4, Does it have some problems with asian
encoding support?

Thanks!


On Dec 31 2006, 9:30 pm, "Felipe Almeida Lessa"
<[EMAIL PROTECTED]> wrote:
> On 31 Dec 2006 05:20:10 -0800, JTree <[EMAIL PROTECTED]> wrote:
>
> > def funUrlFetch(url):
> > lambda url:urllib.urlopen(url).read()This function only creates a 
> > lambda function (that is not used or
> assigned anywhere), nothing more, nothing less. Thus, it returns None
> (sort of "void") no matter what is its argument. Probably you meant
> something like
>
> def funUrlFetch(url):
> return urllib.urlopen(url).read()
>
> or
>
> funUrlFetch = lambda url:urllib.urlopen(url).read()
>
> > objUrl = raw_input('Enter the Url:')
> > content = funUrlFetch(objUrl)content gets assigned None. Try putting "print 
> > content" before the unicode line.
>
> > content = unicode(content,"gbk")This, equivalent to unicode(None, "gbk"), 
> > leads to
>
> > TypeError: coercing to Unicode: need string or buffer, NoneType foundNone's 
> > are not strings nor buffers, so unicode() complains.
> 
> See ya,
> 
> --
> Felipe.

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: A question about unicode() function

2007-01-01 Thread JTree
Thanks everyone!

Sorry for my ambiguous question.
I changed the codes and now it works fine.



JTree wrote:
> Hi,all
>  I encountered a problem when using unicode() function to fetch a
> webpage, I don't know why this happenned.
>  My codes and error messages are:
>
>
> Code:
> #!/usr/bin/python
> #Filename: test.py
> #Modified: 2006-12-31
>
> import cPickle as p
> import urllib
> import htmllib
> import re
> import sys
>
> def funUrlFetch(url):
> lambda url:urllib.urlopen(url).read()
>
> objUrl = raw_input('Enter the Url:')
> content = funUrlFetch(objUrl)
> content = unicode(content,"gbk")
> print content
> content.close()
>
>
> error message:
>
> C:\WINDOWS\system32\cmd.exe /c python test.py
> Enter the Url:http://www.msn.com
> Traceback (most recent call last):
>   File "test.py", line 16, in ?
> content = unicode(content,"gbk")
> TypeError: coercing to Unicode: need string or buffer, NoneType found
> shell returned 1
> Hit any key to close this window...
> 
> Any suggestions would be appreciated!
> 
> Thanks!

-- 
http://mail.python.org/mailman/listinfo/python-list


Re: A question about unicode() function

2007-01-02 Thread JTree
hi,
I just removed the unicode() method from my codes.
As John Machin said, I had an wrong understanding of unicode and ascii.

Paul Watson wrote:
> JTree wrote:
> > Thanks everyone!
> >
> > Sorry for my ambiguous question.
> > I changed the codes and now it works fine.
> >
> >
> >
> > JTree wrote:
> >> Hi,all
> >>  I encountered a problem when using unicode() function to fetch a
> >> webpage, I don't know why this happenned.
> >>  My codes and error messages are:
> >>
> >>
> >> Code:
> >> #!/usr/bin/python
> >> #Filename: test.py
> >> #Modified: 2006-12-31
> >>
> >> import cPickle as p
> >> import urllib
> >> import htmllib
> >> import re
> >> import sys
> >>
> >> def funUrlFetch(url):
> >> lambda url:urllib.urlopen(url).read()
> >>
> >> objUrl = raw_input('Enter the Url:')
> >> content = funUrlFetch(objUrl)
> >> content = unicode(content,"gbk")
> >> print content
> >> content.close()
> >>
> >>
> >> error message:
> >>
> >> C:\WINDOWS\system32\cmd.exe /c python test.py
> >> Enter the Url:http://www.msn.com
> >> Traceback (most recent call last):
> >>   File "test.py", line 16, in ?
> >> content = unicode(content,"gbk")
> >> TypeError: coercing to Unicode: need string or buffer, NoneType found
> >> shell returned 1
> >> Hit any key to close this window...
> >>
> >> Any suggestions would be appreciated!
> >>
> >> Thanks!
> 
> So...  How about posting the brief working code?

-- 
http://mail.python.org/mailman/listinfo/python-list