如何在python机械化中设置cookie

Joh*_*ohn 5 python mechanize-python

向服务器发送请求后

    br.open('http://xxxx')
    br.select_form(nr=0)   
    br.form['MESSAGE'] = '1 2 3 4 5'
    br.submit()
Run Code Online (Sandbox Code Playgroud)

我得到了响应标题,其中包含了set-cookie

Set-Cookie: PON=xxx.xxx.xxx.111; expires=Tue, 17-Mar-2015 00:00:00 GMT; path=/
Run Code Online (Sandbox Code Playgroud)

因为机械化似乎无法记住cookie,所以我想为br设置cookie.我该怎么做?

    cj = mechanize....?
    br.set_cookiejar(cj)
Run Code Online (Sandbox Code Playgroud)

我不知道.请帮忙

Chr*_*icz 5

我认为这应该做你想做的:

import Cookie
import cookielib
cookiejar =cookielib.LWPCookieJar()

br = mechanize.Browser()
br.set_cookiejar(cookiejar)
cookie = cookielib.Cookie(version=0, name='PON', value="xxx.xxx.xxx.111", expires=365, port=None, port_specified=False, domain='xxxx', domain_specified=True, domain_initial_dot=False, path='/', path_specified=True, secure=True, discard=False, comment=None, comment_url=None, rest={'HttpOnly': False}, rfc2109=False)
cookiejar.set_cookie(cookie)
Run Code Online (Sandbox Code Playgroud)


nei*_*eif 5

您还可以使用 mechanize 浏览器类中的 addheaders 方法手动添加预先存在的 cookie。

br.addheaders = [('Cookie','cookiename=cookie value')]
Run Code Online (Sandbox Code Playgroud)


unu*_*tbu 1

import mechanize
import cookielib

br = mechanize.Browser()
cj = cookielib.CookieJar()
br.set_cookiejar(cj)
Run Code Online (Sandbox Code Playgroud)