[Tutor] Unicode
Øyvind Dale Spørck
oyvind.sporck at eniro.no
Tue Sep 23 12:43:02 EDT 2003
Hello,
I have been making a little program that goes onto the net and picks down
some information. The program has to put some adresses together to find the
adress that it is going to look for. It works great if I use only english
letters. However, I need to use a few non-english letters, æøå. Python
seems to change the adress to unicode, even thought I make sure that all the
variables are in string format.
In the error the letter ø gets translated into \xf8. The correct adress
is
http://www.kvasir.no/cgi-bin/search.cgi?what=bransje&q=agreement.level%3A204
+S%F8keord&loc= where the ø gets translated into %F8. How can I get the
program to translate the ø to %F8 and to run the adress without the Unicode
error?
Thanks in advance,
Øyvind
The error:
Traceback (most recent call last):
File
"C:\Python22\Lib\site-packages\Pythonwin\pywin\framework\scriptutils.py",
line 301, in RunScript
exec codeObject in __main__.__dict__
File "C:\Documents and Settings\oyvind.sporck\My
Documents\Python\agreement_level_excel4.py", line 147, in ?
n.lastned()
File "C:\Documents and Settings\oyvind.sporck\My
Documents\Python\agreement_level_excel4.py", line 55, in lastned
definisjoner.res4 = urlopen(definisjoner.level4)
File "C:\Python22\lib\urllib.py", line 73, in urlopen
return _urlopener.open(url)
File "C:\Python22\lib\urllib.py", line 151, in open
fullurl = unwrap(toBytes(fullurl))
File "C:\Python22\lib\urllib.py", line 913, in toBytes
raise UnicodeError("URL " + repr(url) +
UnicodeError: URL
u'http://www.kvasir.no/cgi-bin/search.cgi?what=bransje&q=agreement.level%3A2
04+S\xf8keord&loc=&Submit=S%F8k' contains non-ASCII characters
The program:
from win32com.client import Dispatch
from urllib import urlopen
import re
from sys import exit
class definisjoner:
xlApp = Dispatch("Excel.Application")
xlApp.visible = 1
xlApp.Workbooks.Open(Filename='C:\\Documents and
Settings\oyvind.sporck\My Documents\Agreementliste.xls')
xlBook = xlApp.Workbooks(1)
xlSheet = xlApp.Sheets(1)
level4 =''
level5 =''
level6 =''
level7 =''
level8 =''
res4 = ''
res5 = ''
res6 = ''
res7 = ''
res8 = ''
bransje = ''
forst =
"http://www.kvasir.no/cgi-bin/search.cgi?what=bransje&q=agreement.level%3A"
midten = "+"
slutten = "&loc=&Submit=S%F8k"
linje_standard = ''
linje_pluss = ''
linje_bilde = ''
linje_slide = ''
linje_slidepluss = ''
xlrad = 2
xlkolonne = 1
def __init__(self):
pass
def spor(self):
definisjoner.bransje =
definisjoner.xlSheet.Cells(definisjoner.xlrad, definisjoner.xlkolonne).Value
print(type(definisjoner.bransje))
print definisjoner.bransje
print definisjoner.bransje
#definisjoner.bransje = str(definisjoner.bransje)
print definisjoner.bransje
definisjoner.bransje
if definisjoner.bransje == '':
sys.exit()
definisjoner.level4 = definisjoner.forst + "204" +
definisjoner.midten + definisjoner.bransje + definisjoner.slutten
definisjoner.level5 = definisjoner.forst + "205" +
definisjoner.midten + definisjoner.bransje + definisjoner.slutten
definisjoner.level6 = definisjoner.forst + "206" +
definisjoner.midten + definisjoner.bransje + definisjoner.slutten
definisjoner.level7 = definisjoner.forst + "207" +
definisjoner.midten + definisjoner.bransje + definisjoner.slutten
definisjoner.level8 = definisjoner.forst + "208" +
definisjoner.midten + definisjoner.bransje + definisjoner.slutten
print definisjoner.bransje
def lastned(self):
definisjoner.res4 = urlopen(definisjoner.level4)
definisjoner.res5 = urlopen(definisjoner.level5)
definisjoner.res6 = urlopen(definisjoner.level6)
definisjoner.res7 = urlopen(definisjoner.level7)
definisjoner.res8 = urlopen(definisjoner.level8)
def finn(self):
i = 1
print "Bransje"
print definisjoner.bransje
while definisjoner.res4.readline() != '<TD BGCOLOR="#DDDDDD"><FONT
SIZE=2 face="Verdana,Arial,Geneva">\n':
i = i + 1
if i > 1000:
break
m = definisjoner.res4.readline()
print m
definisjoner.linje_standard = re.search('(?<=<b>)[0-9][0-9][0-9]',
m) or re.search('(?<=<b>)[0-9][0-9]', m) or re.search('(?<=<b>)[0-9]', m)
i = 1
while definisjoner.res5.readline() != '<TD BGCOLOR="#DDDDDD"><FONT
SIZE=2 face="Verdana,Arial,Geneva">\n':
i = i + 1
if i > 1000:
break
m = definisjoner.res5.readline()
print m
definisjoner.linje_pluss = re.search('(?<=<b>)[0-9][0-9][0-9]', m)
or re.search('(?<=<b>)[0-9][0-9]', m) or re.search('(?<=<b>)[0-9]', m)
i = 1
while definisjoner.res6.readline() != '<TD BGCOLOR="#DDDDDD"><FONT
SIZE=2 face="Verdana,Arial,Geneva">\n':
i = i + 1
if i > 1000:
break
m = definisjoner.res6.readline()
print m
definisjoner.linje_bilde = re.search('(?<=<b>)[0-9][0-9][0-9]', m)
or re.search('(?<=<b>)[0-9][0-9]', m) or re.search('(?<=<b>)[0-9]', m)
i = 1
while definisjoner.res7.readline() != '<TD BGCOLOR="#DDDDDD"><FONT
SIZE=2 face="Verdana,Arial,Geneva">\n':
i = i + 1
if i > 1000:
break
m = definisjoner.res7.readline()
print m
definisjoner.linje_slide = re.search('(?<=<b>)[0-9][0-9][0-9]', m)
or re.search('(?<=<b>)[0-9][0-9]', m) or re.search('(?<=<b>)[0-9]', m)
i = 1
while definisjoner.res8.readline() != '<TD BGCOLOR="#DDDDDD"><FONT
SIZE=2 face="Verdana,Arial,Geneva">\n':
i = i + 1
if i > 1000:
break
m = definisjoner.res8.readline()
print m
definisjoner.linje_slidepluss = re.search('(?<=<b>)[0-9][0-9][0-9]',
m) or re.search('(?<=<b>)[0-9][0-9]', m) or re.search('(?<=<b>)[0-9]', m)
def plukkut(self):
if definisjoner.linje_standard == None:
definisjoner.linje_standard = 0
else:
definisjoner.linje_standard =
int(definisjoner.linje_standard.group())
if definisjoner.linje_pluss == None:
definisjoner.linje_pluss = 0
else:
definisjoner.linje_pluss = int(definisjoner.linje_pluss.group())
if definisjoner.linje_bilde == None:
definisjoner.linje_bilde = 0
else:
definisjoner.linje_bilde = int(definisjoner.linje_bilde.group())
if definisjoner.linje_slide == None:
definisjoner.linje_slide == 0
else:
definisjoner.linje_slide = int(definisjoner.linje_slide.group())
if definisjoner.linje_slidepluss == None:
definisjoner.linje_slidepluss == 0
else:
definisjoner.linje_slidepluss =
int(definisjoner.linje_slidepluss.group())
def settinn(self):
definisjoner.xlkolonne = definisjoner.xlkolonne + 1
definisjoner.xlSheet.Cells(definisjoner.xlrad,
definisjoner.xlkolonne).Value = definisjoner.linje_standard
definisjoner.xlkolonne = definisjoner.xlkolonne + 1
definisjoner.xlSheet.Cells(definisjoner.xlrad,
definisjoner.xlkolonne).Value = definisjoner.linje_pluss
definisjoner.xlkolonne = definisjoner.xlkolonne + 1
definisjoner.xlSheet.Cells(definisjoner.xlrad,
definisjoner.xlkolonne).Value = definisjoner.linje_bilde
definisjoner.xlkolonne = definisjoner.xlkolonne + 1
definisjoner.xlSheet.Cells(definisjoner.xlrad,
definisjoner.xlkolonne).Value = definisjoner.linje_slide
definisjoner.xlkolonne = definisjoner.xlkolonne + 1
definisjoner.xlSheet.Cells(definisjoner.xlrad,
definisjoner.xlkolonne).Value = definisjoner.linje_slidepluss
definisjoner.xlkolonne = 1
definisjoner.xlrad = definisjoner.xlrad + 1
if __name__ == "__main__":
n = definisjoner()
while 1 == 1:
n.spor()
n.lastned()
n.finn()
n.plukkut()
n.settinn()
More information about the Tutor
mailing list