Python - 登录页面并获取cookies

3

首先,感谢您花时间阅读并可能试图帮助我。

我正在尝试制作一个脚本,以便轻松登录网站。我还想获取登录 cookie,这样也许以后可以重复使用它们。我制作了脚本,并成功登录了。但是我无法获取到 cookies。当我尝试打印它们时,我只看到了这个:

<RequestsCookieJar[]>

显然,这对我没有帮助。所以现在我想知道如何获取真正的cookie数据。非常感谢能够帮助我达成此目标的人。
我的代码:
import requests
import cfscrape
from bs4 import BeautifulSoup as bs
header = {"User-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"}
s = requests.session()
scraper=cfscrape.create_scraper(sess=s) #i use cfscrape because the page uses cloudflare anti ddos page
        scraper.get("https://www.bstn.com/einloggen", headers=header)
        myacc={"login[email]": "my@mail.com", #obviously change
        "login[password]": "password123"}
        entry=scraper.post("https://www.bstn.com/einloggen", headers=header, data=myacc)
        soup=bs(entry.text, 'lxml')
        accnm=soup.find('meta',{'property':'og:title'})['content']
        print("Logged in as: " + accnm)
        aaaa=scraper.get("https://www.bstn.com/kundenkonto", headers=header)
        print(aaaa.cookies)

如果我打印cookies,只会得到像之前描述的<RequestsCookiesJar[]>,如果有人能帮助我获取“真正”的cookies,那就太好了。
1个回答

2

如果你想获取登录cookie,应该使用提交后的响应,因为你正在执行登录操作!如果你输入正确的电子邮件和密码,服务器将发送会话cookie。而在 aaaa 中获取空cookie的原因是网站不想设置或更改你的cookie。

entry = scraper.post("https://www.bstn.com/einloggen", allow_redirects=False, headers=header, data=myacc)
print(entry.cookies)

你好,感谢您的有益回答。我尝试了这个方法,但是不幸的是,我仍然得到一个空的 cookie。这是否有任何特定的含义或原因呢?谢谢。 - rocket
很抱歉,我在还没有注册该网站账户时就回答了这个问题。我的回答其实是正确的,但为什么没有显示呢?因为重定向了!成功登录后,您将被重定向到另一个页面,因此您的响应发生了变化。当您设置 allow_redirects = False 时,一切都正常了。 - KC.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接