我需要pycurl来保存已发布表单中的cookie,然后在同一域中的下一个URL中使用这些cookie。它似乎不会自动执行此操作。
我已阅读COOKIEFILE和COOKIEJAR选项,但我不想将这些cookie保存到文件中。那么有没有其他方法可以使用curl / pycurl启用cookie而不将它们保存到文件中?
答案 0 :(得分:4)
libcurl文档声明:
<强> CURLOPT_COOKIEFILE 强>
给定一个空的或不存在的文件或传递空字符串(“”),此选项将为此curl句柄启用cookie,使其理解并解析收到的cookie,然后在将来的请求中使用匹配的cookie。
我自己尝试过,它的工作非常出色,只需使用相同的卷曲对象。
示例强>
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响应,因此我们可以保持ontopic。
答案 1 :(得分:1)
根据PycURL网站,真正的文档是C API。粗略的look like what you need上的C API CURLOPT_COOKIE和CURLOPT_COOKIELIST。