Python Mechanize set cookie - PullRequest
       21

Python Mechanize set cookie

0 голосов
/ 19 мая 2018

Этот код ниже работает.

cookiejar =cookielib.LWPCookieJar()
br.set_cookiejar(cookiejar)

c0 = cookielib.Cookie(version=0, name='_mobile_sess', value='BAh7ByIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoQX2NzcmZfdG9rZW4iLTY4YWYxODc5ZmVlNTRhMDM4YzUwN2VjMmNiMWJkMjZlMTIxNDViNWM%3D--a18dca22d18735ebb9c4f91f595bae999e138f5e', port=None, port_specified=False, domain='.twitter.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=True, expires=1531884528, discard=False, comment=None, comment_url=None, rest={'HTTPOnly': None}, rfc2109=False)

cookiejar.set_cookie(c0)

Однако по какой-то причине я должен хранить c0 в виде строки.Итак, на самом деле, c0 - это строка в Unicode

c0 = u"cookielib.Cookie(version=0, name='_mobile_sess', value='BAh7ByIKZmxhc2hJQzonQWN0aW9uQ29udHJvbGxlcjo6Rmxhc2g6OkZsYXNoSGFzaHsABjoKQHVzZWR7ADoQX2NzcmZfdG9rZW4iLTY4YWYxODc5ZmVlNTRhMDM4YzUwN2VjMmNiMWJkMjZlMTIxNDViNWM%3D--a18dca22d18735ebb9c4f91f595bae999e138f5e', port=None, port_specified=False, domain='.twitter.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=True, expires=1531884528, discard=False, comment=None, comment_url=None, rest={'HTTPOnly': None}, rfc2109=False)"

, поэтому

cookiejar.set_cookie(c0) 

ошибка возврата

if cookie.domain not in c: c[cookie.domain] = {}

AttributeError: 'Text' object has no attribute 'domain'

Как мне решить эту проблему?Как мне преобразовать строку юникода c0 в «что-то», которое cookiejar.set_cookie(c0) может принять?

1 Ответ

0 голосов
/ 19 мая 2018

Вы можете использовать оператор exec для выполнения строки, хранящейся в c0

exec "c0 = " + c0

Например:

>>> exec u"print('hello')"
hello

См .: Как мне выполнить строку, содержащую код Python в Python?

...