Python-Anforderung POST-Codierung
hier ist die situation, ich bin senden von POST-requests und versucht zu Holen die Reaktion mit Python
problem ist, dass es verzerrt nicht lateinische Buchstaben, die nicht geschehen, wenn ich fetch der gleichen Seite mit direktem link (keine Suchergebnisse), aber POST-requests nicht erzeugen einen link
hier ist was ich tun:
import urllib
import urllib2
url = 'http://donelaitis.vdu.lt/main_helper.php?id=4&nr=1_2_11'
data = 'q=bus&ieskoti=true&lang1=en&lang2=en+-%3E+lt+%28+71813+lygiagre%C4%8Di%C5%B3+sakini%C5%B3+%29&lentele=vertikalus®=false&rodyti=dalis&rusiuoti=freq'
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()
file = open("pagesource.txt", "w")
file.write(the_page)
file.close()
immer wenn ich versuche
thepage = the_page.encode('utf-8')
bekomme ich diesen Fehler:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5 in position 1008: ordinal not in range(128)
immer wenn ich versuche ändern der response-header Content-Type:text/html;charset=utf-8, ich weiß
response['Content-Type'] = 'text/html;charset=utf-8'
bekomme ich diesen Fehler:
AttributeError: addinfourl instance has no attribute '__setitem__'
Meine Frage: ist es möglich, zu Bearbeiten oder zu entfernen-Antwort-oder request-Header?
wenn nicht, gibt es eine andere Möglichkeit dieses problem zu lösen, andere, die das kopieren von Quellcode in notepad++ und Befestigung Codierung manuell?
ich bin neu in python und data mining, hoffe wirklich, Sie würde lassen Sie mich wissen, wenn ich;m, etwas falsch zu machen
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht warum Ihr versuchen
thepage = the_page.decode('utf-8')
stattencode
da das, was Sie wollen, ist das verschieben von utf-8-codierten text in unicode - Codierung Agnostiker - internen strings?Zwei Dinge. Erstens, Sie wollen nicht zu codieren, die Antwort, die Sie wollen, Sie zu entschlüsseln:
Und zweitens, werden Sie nicht wollen, um den header auf die Antwort, die Sie legen Sie es auf die Anfrage, mit der
add_header
Methode: