Posted on:
Last modified:
有时候,requests 返回的 cookies 会为空,原因是链接发生了 301/302 跳转,而 cookies 是跟着 第一个响应返回的,第二个响应没有返回 Set-Cookie header。所以直接读取 r.cookies 是空的, 而在 session.cookies 中是有数据的。
解决方法是直接读 s.cookies。
s = requests.Session()
r = s.get("http://httpbin.org/cookies/set?foo=bar")
cookies = requests.utils.dict_from_cookiejar(s.cookies)
s.cookies.clear()
不过需要注意的是如果在多线程环境中使用 session 需要注意锁的问题,建议把 session 设置成 thread local 的类型。
不要用 requests,有严重的内存泄漏问题:
Requests 还有严重的性能问题,每次请求竟然都会做一次 DNS 查询
© 2016-2022 Yifei Kong. Powered by ynotes
All contents are under the CC-BY-NC-SA license, if not otherwise specified.
Opinions expressed here are solely my own and do not express the views or opinions of my employer.
友情链接: MySQL 教程站