Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python mechanize中设置cookie_Python_Mechanize Python - Fatal编程技术网

如何在python mechanize中设置cookie

如何在python mechanize中设置cookie,python,mechanize-python,Python,Mechanize Python,向服务器发送请求后 br.open('http://xxxx') br.select_form(nr=0) br.form['MESSAGE'] = '1 2 3 4 5' br.submit() 我得到了响应标题,它设置了cookie Set-Cookie: PON=xxx.xxx.xxx.111; expires=Tue, 17-Mar-2015 00:00:00 GMT; path=/ 因为mechanize似乎无法记住cookie,所以我想为br

向服务器发送请求后

    br.open('http://xxxx')
    br.select_form(nr=0)   
    br.form['MESSAGE'] = '1 2 3 4 5'
    br.submit()
我得到了响应标题,它设置了cookie

Set-Cookie: PON=xxx.xxx.xxx.111; expires=Tue, 17-Mar-2015 00:00:00 GMT; path=/
因为mechanize似乎无法记住cookie,所以我想为br设置cookie。我怎么做

    cj = mechanize....?
    br.set_cookiejar(cj)
我不知道。
请帮助

我认为这应该满足您的要求:

import mechanize
import cookielib

br = mechanize.Browser()
cj = cookielib.CookieJar()
br.set_cookiejar(cj)
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)

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

br.addheaders = [('Cookie','cookiename=cookie value')]

要使用python mechanize设置cookie,请首先抓取网站cookie并将其保存到文件“cookies.lwp”:

现在,您可以将“cookies.lwp”中的任何cookie设置为所需的任何值,然后将其加载回浏览器:

cj.load(filename="modified_cookies.lwp", ignore_discard=False, ignore_expires=False)
br.set_cookiejar(cj)
br.open('https://www.yoursitehere.com')
for cookie in cj:
    print cookie

本视频将引导您浏览

您可以使用
set\u simple\u cookie
功能以更好的方式添加cookie

考虑到您的cookie是json格式的

{
“域”:.example.com“,
“到期日期”:1651137273.706626,
“hostOnly”:false,
“httpOnly”:正确,
“名称”:“SecureExampleId”,
“路径”:“/”,
“sameSite”:“严格”,
“安全”:正确,
“会话”:false,
“storeId”:空,
“值”:“v%3D2%26mac%…”
}
导入http.cookiejar
cookiejar=http.cookiejar.LWPCookieJar()
br.设置\u cookiejar(cookiejar)
br.set_simple_cookie(cookie['name']、cookie['value']、cookie['domain']、cookie['path'])
响应=br.打开(url)
打印(cookiejar.\u cookies)

谢谢。我在发帖之前试过了。它不起作用。我想我需要将Set Cookie:PON=xxx.xxx.xxx.111传递给br。但是我不知道如何设置。还有另一种设置cookiejar的方法:看。@unutbu我想这就是你打算给出的链接。
cj.load(filename="modified_cookies.lwp", ignore_discard=False, ignore_expires=False)
br.set_cookiejar(cj)
br.open('https://www.yoursitehere.com')
for cookie in cj:
    print cookie