2

投稿されたフォームから Cookie を保存し、同じドメインにある次の URL でそれらの Cookie を使用するには、pycurl が必要です。これは自動的には行われないようです。

COOKIEFILE および COOKIEJAR オプションを読みましたが、これらの Cookie をファイルに保存したくありません。ファイルに保存せずにcurl/pycurlでCookieを有効にする他の方法はありますか?

4

2 に答える 2

5

まあ、libcurl docs は次のように述べています:

CURLOPT_COOKIEFILE

空または存在しないファイルを指定するか、空の文字列 ("") を渡すことにより、このオプションはこの curl ハンドルの Cookie を有効にし、受信した Cookie を理解して解析し、今後の要求で一致する Cookie を使用します。

自分で試してみたところ、同じcurlオブジェクトを使用するだけで見事に機能します。

import pycurl
curl = pycurl.Curl()

# Turn on cookies
curl.setopt(pycurl.COOKIEFILE, "")

# Login
curl.setopt(pycurl.URL, "http://www.example.com/login.php")
curl.setopt(pycurl.POST, 1)
curl.setopt(pycurl.HTTPPOST, [('user', 'myuser'), ('pass', 'mypass'), ('submit', 'login')])
curl.perform()

# Now let's get us some members only page
curl.setopt(pycurl.POST, 0) 
curl.setopt(pycurl.URL, "http://www.example.com/members_only.php")
curl.perform()

トピックにとどまることができるように、取得する StringIO 応答全体をスキップしました。

于 2012-05-03T21:43:04.847 に答える
1

PycURLサイトによると、実際のドキュメントはCAPIです。C API CURLOPT_COOKIEおよびCURLOPT_COOKIELISTは、大雑把に言えば、必要なもののように見えます

于 2010-12-02T01:00:07.290 に答える