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
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