Выполните вход с использованием результатов Python-Mechanize в UnicodeEncodeError
Я пытаюсь авторизоваться на partnernet.amazon.de (немецкая партнерская программа amazon).
Это мой код до сих пор:
import cookielib
import mechanize
# Browser
br = mechanize.Browser()
# Enable cookie support for urllib2
cookiejar = cookielib.LWPCookieJar()
br.set_cookiejar( cookiejar )
# Broser options
br.set_handle_equiv(True)
br.set_handle_gzip(True)
br.set_handle_redirect(True)
br.set_handle_referer(True)
br.set_handle_robots(False)
#
br.set_handle_refresh( mechanize._http.HTTPRefreshProcessor(), max_time = 1 )
br.addheaders = [ ( 'User-agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36' ) ]
# authenticate
br.open('https://partnernet.amazon.de/gp/associates/join/landing/')
br.select_form(name="sign_in")
br['username'] = 'username'
br['password'] = 'password'
res = br.submit() # error occurs here
print "Success!\n"
Скрипт завершается с:UnicodeEncodeError: 'ascii' codec can't encode character u'\xc5' in position 0: ordinal not in range(128)
,
Ошибка возникает из-за этого параметра формы sign_in.
`[(u'__mk_de_DE', u'\xc5M\xc5\u017d\xd5\xd1'), ...] # ÅMÅŽÕÑ`
Так что я знаю, что это проблема кодирования и где это происходит. Что я не могу понять, это как / где установить правильную кодировку, чтобы предотвратить эту ошибку.
Обновление: ошибка воспроизводится с кодом выше. Нет необходимости иметь реальные данные для входа.