Wenn Sie eine Anfrage mit der POST-Methode unter Verwendung des Anforderungsmoduls von Python stellen, codieren Sie diese per URL. Seien Sie jedoch vorsichtig, wenn Sie japanische Parameterwerte übergeben.
Einige Sites werden im Shift-JIS-Format dekodiert. In diesem Fall muss der Anforderer auch im Shift-JIS-Format codieren und aufrufen.
Wenn Sie es im dict-Format an request.post übergeben, wird die Standardcodierung ausgeführt. Wenn Sie also das URL-Modul mithilfe des urllib-Moduls ausführen, es als str-Typ festlegen und direkt an Anforderungen übergeben, wird die Standardcodierung ebenfalls vermieden und mit Shift-JIS codiert. Es ist möglich, Parameter zu übergeben.
import requests
import urllib.parse
#Wert des Post-Parameters (Beispiel)
item = 'Hoge'
post_data = {'KEY1':item}
# shift-Codiere mit jis und mache es str Typ
urlencode_post_data = urllib.parse.urlencode(post_data, encoding='shift-jis')
headers = {'content-type': 'text/html; charset=Shift_JIS'}
response = requests.post(<Ziel-URL>, urlencode_post_data, headers=headers)
――Wenn es sich um Japanisch handelt, tritt ein solches Zeichencode-Problem auf. Als ich nach einer Lösung suchte, konnte ich keine Lösung finden, die für andere Websites als japanischsprachige Länder anwendbar war, und habe sie daher selbst durch Ausprobieren gelöst. Ich werde es posten, wenn es auch nur ein bisschen hilft.
Recommended Posts