在python 2.6中使用cookielib模块时,我使用urllib2模块来处理http cookies,其方式类似于以下代码片段:import cookielib, urllib2cj = cookielib.CookieJar()opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))r = opener.open("http://example.com/")我想把饼干存到数据库里。我不知道什么更好——序列化CookieJar对象并存储它,或者从CookieJar提取cookies并存储它。我不知道哪一个更好,也不知道如何实现它们。我还应该能够重新创建CookieJar对象。有人能帮我解决上面的问题吗?提前谢谢。 最佳答案 cookielib.Cookie,引用其docstring(在其sources中)故意是一个很简单的类。它只是保存属性。所以pickle(或其他序列化方法)对于保存和恢复每个Cookie实例都是很好的。至于CookieJar,set_cookie设置/添加一个cookie实例,__iter__(要使用后者,只需在jar实例上执行for循环)逐个返回它保存的所有cookie实例。一个子类,您可以使用它来查看如何在数据库上创建“cookie JAR”,这是一个 >(部分为cc,但我只是特别指出JAR源代码文件)——它不将所有cookie加载到内存中,而是将它们保存在一个实例中(主要是在磁盘上),这是一个仅用字符串作为键的哈希表。值)并使用泡菜进行序列化。如果在操作过程中保持每一个cookie都是正确的,那么简单地说mechanize jar是最简单的(当然,把BUB放到DB中并在重新启动时从那里得到它)--self._db给整个JAR提供一个大字节字符串(当然,不仅仅是Cookie)。当您从数据库中重新加载pickle作为blob时,s = cPickle.dumps(myJar, -1)会重建它。
09-26 11:03