Contesto:
Sto lavorando su un accesso di back-end per un consumatore OpenID (StackExchange appunto). Se devo fornire tutti i possibili provider OpenID come opzione per l'utente, allora dovrei simulare l'interazione del browser per l'autenticazione con ciascuno di questi provider prima che potessi inviare l'URL Open ID. Tuttavia, penso che potrei tagliare questo breve accedendo ai cookie esistenti del browser web dell'utente e richiedendo l'autenticazione al consumatore direttamente con l'URL.Come ottenere i cookie dal browser Web con Python?
Problema:
Come accedere ai cookie di web-browser dell'utente? Ho visto pochissime informazioni su come farlo con Python. Questo previous question risponde parzialmente al problema relativo a Firefox, in particolare a the code sample di seguito. Tuttavia, avrei bisogno di accedere ai cookie dai browser Web più comuni utilizzati su Linux, non solo su Firefox.
#! /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
Domanda: Python dispone di un modulo che può facilitare l'estrazione dei cookie dal browser web? Altrimenti, come dovrei adattare il codice sopra per disegnare i cookie da altri browser, come Chromium ecc.?
PS: O sto guardando il problema iniziale (ovvero, autenticarsi con il provider OpenID) nel modo sbagliato? (Mi sento solo la sostituzione di un problema da un altro.)
È possibile visualizzare http://stackoverflow.com/questions/4634408/can-non-web-applications-use-openid – Amber
o http: // stackoverflow. it/questions/921532/retrieving-cookies-python – monkut
@monkut: in realtà è rilevante solo per mantenere i cookie durante le sessioni, che so già come fare. Quello che sto cercando di fare è ottenere i cookie dal browser stesso. – Benjamin