如何手动将更多cookie添加到已在机械化中设置cookie的会话中?

时间:2010-08-29 22:21:52

标签: python cookies mechanize

我有一个python脚本,用于抓取页面并接收cookie。我想将另一个cookie附加到正在发送到服务器的现有cookie中。因此,在下一个请求中,我从原始页面加上我手动设置的cookie。

无论如何这样做?我在机械化中尝试了添加标题,但它被忽略了。

1 个答案:

答案 0 :(得分:6)

使用set_cookie方法:

>>> import mechanize
>>> br=mechanize.Browser()

>>> br.set_cookie?

Definition: br.set_cookie(self, cookie_string)
Docstring:
    Request to set a cookie.

    Note that it is NOT necessary to call this method under ordinary
    circumstances: cookie handling is normally entirely automatic.  The
    intended use case is rather to simulate the setting of a cookie by
    client script in a web page (e.g. JavaScript).  In that case, use of
    this method is necessary because mechanize currently does not support
    JavaScript, VBScript, etc.

    The cookie is added in the same way as if it had arrived with the
    current response, as a result of the current request.  This means that,
    for example, if it is not appropriate to set the cookie based on the
    current request, no cookie will be set.

    The cookie will be returned automatically with subsequent responses
    made by the Browser instance whenever that's appropriate.

    cookie_string should be a valid value of the Set-Cookie header.

    For example:

    browser.set_cookie(
        "sid=abcdef; expires=Wednesday, 09-Nov-06 23:12:40 GMT")

    Currently, this method does not allow for adding RFC 2986 cookies.
    This limitation will be lifted if anybody requests it.