- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
在 Python 2.6 中使用 urllib2
模块时,我使用 cookielib
模块来处理 HTTP cookie,其方式类似于以下代码段:
import cookielib, urllib2
cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
r = opener.open("http://example.com/")
我想将 cookie 存储在数据库中。我不知道什么更好 - 序列化 CookieJar
对象并存储它或从 CookieJar
中提取 cookie 并存储它。我不知道哪个更好或如何实现它们中的任何一个。我还应该能够重新创建 CookieJar
对象。
有人可以帮我解决以上问题吗?
提前致谢。
最佳答案
cookielib.Cookie
,引用其文档字符串(在其 sources 中),
is deliberately a very simple class. It just holds attributes.
所以 pickle
(或其他序列化方法)非常适合保存和恢复每个 Cookie
实例。
至于CookieJar
, set_cookie
设置/添加一个 cookie 实例,__iter__
(要使用后者,只需在 jar 实例上执行 for
循环)返回它持有的所有 cookie 实例,一个接一个。
可用于查看如何制作“数据库上的 cookie jar”的子类是 BSDDBCookieJar (mechanize
的一部分,但我只是专门指出了 jar 源代码文件)——它不会将所有 cookie 加载到内存中,而是将它们保存在 self._db
中。这是一个 bsddb 实例(大部分在磁盘上,类似字典的哈希表仅限于将字符串作为键和值)并使用 pickle 进行序列化。
如果您同意在操作期间将每个 cookie 保存在内存中,只需 pickle
处理 jar 是最简单的(当然,将 blob 放入数据库并在重新启动时从那里取回它)-- s = cPickle.dumps(myJar, -1)
为整个 jar 提供一个大字节字符串(及其策略,当然,不仅仅是 cookie),并且 theJar = cPickle.loads(s)
重新加载后重建它 s
作为来自数据库的 blob。
关于python - 在数据库中存储 cookielib cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3028923/
我正在尝试打开以下网站并检索初始 cookie 并将其用于第二个 url-open 但如果您运行以下代码,它会输出 2 个不同的 cookie。如何将初始 cookie 用于第二个 url-open?
在 Python 2.6 中使用 urllib2 模块时,我使用 cookielib 模块来处理 HTTP cookie,其方式类似于以下代码段: import cookielib, urllib2
这是我到目前为止得到的: import urllib, urllib2, cookielib jar = cookielib.CookieJar() opener = urllib2.build_op
在cookielib文档中,cookielib.LWPCookieJar的定义是: class cookielib.LWPCookieJar(filename, delayload=None, pol
据我所知,cookielib 不是线程安全的;但话又说回来,这个帖子已经有五年了,所以它可能是错误的。 尽管如此,我一直在想——如果我生成这样的类: class Acc: jar = cook
我正在学习 python 网络。我已经学习了套接字,现在我想学习 python HTTP 来连接到 HTTPServer,提取 cookie 等。我面临着提取 cookie 的问题。尝试谷歌但没有找到
我到处找这个,就是找不到答案。我检查了我的 python 版本,它是 3.2 版。当我尝试导入 cookielib 时,我收到: ImportError: 没有名为 cookielib 的模块 我看到
我正在使用 CentOS 5.5 和 Python。 下面的代码可以完美运行, cj = cookielib.CookieJar() opener = urllib2.build_opener(url
我想学习用Python登录网站的技巧,所以我复制了别人的代码然后尝试理解它们。我写了几个不需要自己将数据发布到网站的网络爬虫。但是这一次,当我尝试学习需要发布数据的爬虫时,Python 不起作用。 这
我尝试使用来自 mechanize 浏览器的 cookie,用于在请求 session 中登录站点,但每当我从 session 中发出请求时,都会收到 TypeError。 我制作了一个方便的类,用于
我正在创建一个脚本,该脚本需要我使用代理并需要使用 cookie。 该脚本将访问 HTTP 和 HTTPS 页面,这意味着我需要两个 URL 打开程序。 但是,我希望两个开启者的cookie能够互相共
在 python 中,我正在使用 httplib,因为它“保持事件”http 连接(与 urllib(2) 相反)。现在,我想将 cookielib 与 httplib 一起使用,但它们似乎互相讨厌!
我正在尝试使用 selenium 登录网站,然后将 cookie 传输到 mechanize。我已经使用 selenium 成功登录并将其 session cookie 保存到一个变量中。尝试使用 c
我有一个 CookieJar 正在与 Mechanize 一起使用,我想向其中添加 cookie。我该怎么做呢? make_cookie() 和 set_cookie() 对我来说不够清楚。 br =
我正在尝试在 Python 2.6 中使用 cookielib 创建一个新的 FileCookieJar。但是,当我这样做时,我收到以下错误: Traceback (most recent call
我是一名优秀的程序员,十分优秀!