2014年9月26日星期五

Python 怎样从Web浏览器(webbrowser)中获取cookie?

我工作在一个后台访问一个OpenID用户(StackExchange事实上)。如果我提供所有可能的OpenID提供者作为一个选择的用户,那么我就要模拟浏览器交互验证到每个这些供应商之前,我可以公开身份的URL。然而我认为我可以把这短暂的访问用户的Web浏览器存在的cookie并要求认证,消费者直接与URL

问题

如何获取用户的Web浏览器的cookies?我很少见到有关如何使用Python做。这一问题部分地回答了关于Firefox的问题,指出特别是她的下面的代码示例。然而需要从Linux上使用的最常见的Web浏览器访问的饼干而不只是火狐

#! /usr/bin/env python # Protocol implementation for handling gsocmentors.com transactions # Author: Noah Fontes nfontes AT cynigram DOT com # License: MIT  def sqlite2cookie(filename):     from cStringIO import StringIO     from pysqlite2 import dbapi2 as sqlite      con = sqlite.connect(filename)      cur = con.cursor()     cur.execute("select host, path, isSecure, expiry, name, value from moz_cookies")      ftstr = ["FALSE","TRUE"]      s = StringIO()     s.write("""\ # Netscape HTTP Cookie File # http://www.netscape.com/newsref/std/cookie_spec.html # This is a generated file!  Do not edit. """)     for item in cur.fetchall():         s.write("%s\t%s\t%s\t%s\t%s\t%s\t%s\n" % (             item[0], ftstr[item[0].startswith('.')], item[1],             ftstr[item[2]], item[3], item[4], item[5]))      s.seek(0)      cookie_jar = cookielib.MozillaCookieJar()     cookie_jar._really_load(s, '', True, True)     return cookie_jar

问题:做Python提供的模块,可以方便的从Web浏览器提取饼干吗?另外我应该如何适应上述代码从其他浏览器绘制饼干

PS还是我在最初的问题(即验证到OpenID提供商)错了?我觉得我只是更换问题的另一个

没有评论:

发表评论