gpt4 book ai didi

python - CookieJarLib 不会将 cookie 保存回文件吗?

转载 作者:行者123 更新时间:2023-11-28 17:54:09 32 4
gpt4 key购买 nike

我正在处理 Anthony Briggs. 给出的示例代码但是它似乎没有将 cookie 保存回定义的 cookie 文件中。

我修改后的代码。我改用 LWPCookieJar 因为它应该是 fully compatible并将登录代码删除到一个单独的函数中,以便我可以先测试我是否登录,然后如果没有,则调用登录功能。

如果我使用一个对象登录,获取新的 cookie,保存它们,然后创建一个新对象加载相同的文件,它将恢复为登录前存储的 cookie。

测试代码:

facebookObject = FacebookBrowser(cookie_filename)
#check if authenticated
success=myAuthenticationTest(facebookObject)
if not success:
facebookObject.setupUser(facebookObject.login, facebookObject.password, cookie_filename)
resp = facebookObject.opener.open(testurl) #new cookies should be set

facebookObject.cj.save(cookie_filename)
saved_cookies = facebookObject.cj

facebookObject2 = FacebookBrowser(cookie_filename)
newly_loaded_cookies = facebookObject2.cj


#saved_cookies != newly_loaded_cookies

类代码:

class FacebookBrowser(object):

def __init__(self,cookie_filename):
""" Start up... """
self.login = xxxxx
self.password = yyyyyy
self.cookie_filename = cookie_filename

self.cj = cookielib.LWPCookieJar(cookie_filename)
if os.access(cookie_filename, os.F_OK):
self.cj.load()

self.opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel=0),
urllib2.HTTPSHandler(debuglevel=0),
urllib2.HTTPCookieProcessor(self.cj)
)

self.opener.addheaders = [
('User-agent', ('Mozilla/5.0 (Windows; U; Windows NT 6.1; he; rv:1.9.2.3) Gecko/20100401 Firefox/3.6.3'))
]


def setupUser(self, login, password,cookie_filename):

# need this twice - once to set cookies, once to log in...
self.loginToFacebook()
self.loginToFacebook()

self.cj.save()

self.opener = urllib2.build_opener(
urllib2.HTTPRedirectHandler(),
urllib2.HTTPHandler(debuglevel=0),
urllib2.HTTPSHandler(debuglevel=0),
urllib2.HTTPCookieProcessor(self.cj)
)

self.cj.save()


def loginToFacebook(self):
"""
Handle login. This should populate our cookie jar.
"""
login_data = urllib.urlencode({
'email' : self.login,
'pass' : self.password,
})
response = self.opener.open("https://login.facebook.com/login.php", login_data)
return ''.join(response.readlines())

最佳答案

我刚刚阅读 another forum我需要在所有 .save() 和 .load() 方法中设置 ignore_discard=True

关于python - CookieJarLib 不会将 cookie 保存回文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3630307/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com