让我们考虑以下几点:
import requests
import http.Cookiejar
s = requests.session()
s.get('http://www.wallstreetjournal.com')
s.cookies
返回
<RequestsCookieJar[Cookie(version=0, name='DJCOOKIE', value='ORC%3Deurope', port=None, port_specified=False, domain='.wsj.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='DJSESSION', value='country%3Dde%7C%7Ccontinent%3Deu%7C%7Cregion%3Dhe%7C%7Ccity%3Dfrankfurt%7C%7Clatitude%3D50.12%7C%7Clongitude%3D8.68%7C%7Ctimezone%3Dgmt%2B1%7C%7Czip%3D%7C%7CORCS%3Deurope', port=None, port_specified=False, domain='.wsj.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=None, discard=True, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='usr_bkt', value='63L1D4y2F9', port=None, port_specified=False, domain='.wsj.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1820320502, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False), Cookie(version=0, name='wsjregion', value='europe', port=None, port_specified=False, domain='.wsj.com', domain_specified=True, domain_initial_dot=True, path='/', path_specified=True, secure=False, expires=1507552502, discard=False, comment=None, comment_url=None, rest={}, rfc2109=False)]>
我想以简单的方式将cookie保存到cookiejar中,而不是使用pickle或json转储,而是使用cookiejar功能。
This page似乎表明它就像s.cookies = http.cookiejar.LWPCookieJar(filename="test.cookies")
一样简单。
但是,当我使用该行时,会话中的cookie变为空,“test.cookies”为空文件。
编辑: 我只是意识到我的例子可能会造成问题,因为我取代了我的现实生活中的问题,这是一个我订阅的华尔街日报的网站。使用华尔街日报示例甚至没有创建文件,可能是因为页面的cookie不是持久的。但我不确定如何最好地代表这个问题...
希望这足以查明问题,并了解s.cookies = http.cookiejar.LWPCookieJar(filename="test.cookies")
无效的原因。
任何帮助表示感谢。
答案 0 :(得分:0)
这对我来说很完美。基本上,我只是修改了原始海报所链接的#1488拉取请求代码,以便可以在Python 3中使用。我认为AChampion已经回答了这个问题,但希望这会对任何可能遇到麻烦的人有所帮助。
import requests
import http.cookiejar
s = requests.Session()
s.cookies = http.cookiejar.LWPCookieJar(filename="cookies.txt")
r = s.get("https://www.google.com")
s.cookies.save()