Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [Python] Problem mit urllib bei Umlauten



Yonibear
24-09-2005, 15:47
Hallo!

Ich versuche hier ein Suchformular über Python mit urllib2 als POST anzusteuern. (auf www.magiccards.info )
Das ganze klappt soweit ganz gut, ausser wenn ich was mit Umlauten drin suche. Dann wandelt urllib.urlencode nämlich die zeichen wie z.B. "ä" in "%E4" um, was jedoch wie beim händischen Zusammenfügen der URL nicht klappt. Suche ich wie es gedacht ist im Webbrowser, wird das ganze anscheinend korrekt über POST versandt und ich erhalte meinen Treffer.
Momentan sieht mein Code folgendermaßen aus:



#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import urllib2, urllib
from re import *
from sys import exit,argv
from os import makedirs
from codecs import *

URL = "http://www.magiccards.info/query.php"


if len(argv) < 2:
print "Bitte Kartennamen angeben"
exit()

CARD_NAME = argv[1]
CARD_LANG = "all"

POSTdata = {
"cardname":CARD_NAME,
"cardname_language":CARD_LANG}

encodedPOST = urllib.urlencode(POSTdata)
search_page = urllib2.urlopen(URL, data=encodedPOST)
page_html = search_page.read()



mfg

Yonibear

Yonibear
24-09-2005, 21:43
So, ich habs jetzt doch noch selber hinbekommen.
Der Trick war wohl, das POST-Argument in einen unicode-String unmzuwandeln und dann wieder mit unicode.encode("UTF-8") in einen String zurück, dann hats urlencode richtig umgewandelt.