2016-05-23 7 views
1

によって作成されたクッキーファイルを読み込む私はカールによって保存され、次のクッキー(test.txtの、タブ区切りで、このエディタは、タブを保存しません)持っている:私はそれを読んしようとしているカール

# Netscape HTTP Cookie File 
# http://curlm.haxx.se/rfc/cookie_spec.html 
# This file was generated by libcurl! Edit at your own risk. 

#HttpOnly_my-example.com FALSE / FALSE 0 _rails-root_session test 

import sys 

if sys.version_info < (3,): 
    from cookielib import Cookie, MozillaCookieJar 
else: 
    from http.cookiejar import Cookie, MozillaCookieJar 

def load_cookies_from_mozilla(filename): 
    ns_cookiejar = MozillaCookieJar() 
    ns_cookiejar.load(filename, ignore_discard=True) 
    return ns_cookiejar 

cookies = load_cookies_from_mozilla("test.txt") 
print (len(cookies)) 

0(クッキーを読み取ることができません)を出力します。 私は手動で次の行(タブ区切り、再びHttpOnlyのフラグを削除し、有効期限のために空の文字列に0を変える、など)に自分のクッキーを変更した場合:(成功したクッキーを読んで、それは1を出力し

my-example.com FALSE / FALSE  _rails-root_session test 

)。

元のクッキー行を読み取るために私のPythonコードに何をする必要がありますか?そして、同じ形式(HttpOnlyフラグと無期限のクッキーの空の文字列の代わりに0)で保存できるようにするのが望ましいですか?

ありがとうございました。

答えて

1

私はあなたのコードをテストし、それを修正しました。 クッキーファイルの最初の部分には、クッキーの前に ''を置いておかなければなりません。 第二クッキーで0の有効期限が切れる時間を意味し、あなたは空の文字列または後者の時間に0を変更することができますので、0手段が、今期限が切れるが、私はあなたが引数にignore_expire = Trueのを使用することをお勧め、公式の意味:

ignore_discard:捨てられるように設定されたCookieも保存します。

ignore_expires:でもexpiredTheファイルを持っているクッキーを保存することがすでに

が存在する場合は上書きされ、結果コードは次のとおりです。

import sys 
if sys.version_info < (3,): 
    from cookielib import Cookie, MozillaCookieJar 
else: 
    from http.cookiejar import Cookie, MozillaCookieJar 

def load_cookies_from_mozilla(filename): 
    ns_cookiejar = MozillaCookieJar() 
    ns_cookiejar.load(filename, ignore_discard=True, ignore_expires=True) 
    return ns_cookiejar 

cookies = load_cookies_from_mozilla("test.txt") 
print (len(cookies)) 

、あなたはより詳細な情報を見つけるためにリンクを見ることができます: Using cookies.txt file with Python Requests

+0

はい、igonore_expires = Trueを指定すると、0のttlを持つCookieを読み取ることができます。 #HttpOnly_の質問はまだ残っています(コメントではありません).HttpOnlyフラグを設定してCookieを読みたいと思っているのですか?もちろん、私は手動でコンパイルを開き、それを変更することができます(#HttpOnly_を消去します)が、合法的な方法を使用する方が良いでしょう(存在する場合)。 – some

+0

クッキーを読んでみたくない場合は、「#」でコメントすることができます。#HttpOnly_はコメントではないと、あなたの問題を抱かせる方法はわかりません。フラグを設定した読み取りCookieを回避するための法的な方法を使用してください – Fisher