How do I manually add more cookies to a session which already has cookies set in mechanize?

僤鯓⒐⒋嵵緔 提交于 2020-01-02 04:42:09

问题


I have a python script which scrapes a page and receives a cookie. I want to append another cookie to the existing cookies that are being send to the server. So that on the next request I have the cookies from the original page plus ones I set manually.

Anyway of doing this? I tried addheaders in mechanize but it was ignored.


回答1:


Use the set_cookie method:

>>> 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.


来源:https://stackoverflow.com/questions/3596857/how-do-i-manually-add-more-cookies-to-a-session-which-already-has-cookies-set-in

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!