如何在python中始终保持requests.session的Cookie持久性

如何在python中始终保持requests.session的Cookie持久性,python,session,python-requests,Python,Session,Python Requests,我使用python请求从公司网站获取一些信息, 首先,我需要登录,然后使用beautifulsoup获取其他url,然后转到这些url获取信息 我使用会话,但现在问题是: 登录后,获取url,然后转到这些url,发现这些url返回的文本不是我想要的,不确定是否是因为非持久性cookie s = requests.session() s.post(url = "https://login.company.com/login/login.do",data={'uid':user,'password'

我使用python请求从公司网站获取一些信息, 首先,我需要登录,然后使用beautifulsoup获取其他url,然后转到这些url获取信息

我使用会话,但现在问题是: 登录后,获取url,然后转到这些url,发现这些url返回的文本不是我想要的,不确定是否是因为非持久性cookie

s = requests.session()
s.post(url = "https://login.company.com/login/login.do",data={'uid':user,'password':
password,'actionFlag': 'loginAuthenticate'})
r=s.get("http://3ms.company.com/hi/space/?l=zh-cn")
soup = BeautifulSoup(r.text,'html.parser')
div=soup.find('div',attrs={'class':'top_pop mt10'})
for a in div.find_all('li'):
    url=a.find('div',attrs={'class':'top_pop_P_right fn'}).find('a')['href']
    r1=s.get(url)
    print(r1.text)
我尝试使用以下代码更新Cookie,但不起作用

if r1.cookies.get_dict():
  s.cookies.update(r1.cookies)

您知道如何解决此问题吗?

是否检查了登录结果?我猜你没有成功登录。通常您必须首先获取登录页面(为了获取一些会话cookie和某种csrf令牌(作为cookie和表单值),通常您必须提取csrf令牌并将其添加到帖子中。我建议您在调试模式下使用web浏览器(对于firefox,使用F12,然后单击网络)你看一下接收和传输的cookies,以及所有被发布的值)在第一次发布之后,第一个get方法返回了成功的结果,问题发生在for循环中的第二个get方法上,我必须承认这很奇怪。如果第一个get有效,那么第二个get也应该有效。你能在for循环中打印url并在web浏览器中尝试相同的url吗?当我从for循环中获取url并直接在web浏览器中尝试时,效果很好,唯一的问题是:我获取的url是:,粘贴到浏览器后,它将重定向到,会话中的Cookie应该自动更新。通常情况下,您不需要调用s.cookies.update()我的想法不多了,也许其他人可以提供帮助。如果没有真实的url和真实的用户帐户(可以是测试帐户),我无法重现和分析问题