Ich habe ein Objekt mit einem CookieJar, das ich beizen möchte.
Wie Sie jedoch wahrscheinlich wissen, würgen Sie Chokes bei Objekten, die Sperrobjekte enthalten. Und aus irgendeinem schrecklichen Grund hat ein CookieJar ein Sperrobjekt.
%Vor%Wie behebe ich das?
Die einzige Lösung, die ich mir vorstellen kann, ist die Verwendung von FileCookieJar.save und FileCookieJar.load in einem StringIO-Objekt. Aber gibt es einen besseren Weg?
Hier ist ein Versuch, indem eine Klasse von CookieJar abgeleitet wird, die getstate / setstate überschreibt, die von Pickle verwendet werden. Ich habe cookieJar nicht verwendet, also weiß nicht, ob es verwendbar ist, aber Sie können abgeleitete Klasse
ausgeben %Vor% CookieJar
ist nicht besonders gut zum persistieren geeignet (darum geht es bei den FileCookieJar
Unterklassen meistens! -), aber Sie können über eine CookieJar
Instanz iterieren, um alle Cookies zu erhalten (und eine Liste davon beizubehalten) Zum Beispiel, und, um das Glas mit den Cookies wiederherzustellen, verwenden Sie set_cookie
auf jedem. So würde ich über persistierende und nicht aufdringliche Keksdosen setzen, die Methode copy_reg
verwendend, um die passenden Funktionen zu registrieren, wenn ich sie häufig benutzen musste.
Tags und Links python persistence pickle cookiejar cookielib