首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python请求访问时,站点未设置csrftoken cookie

使用Python请求访问时,站点未设置csrftoken cookie
EN

Stack Overflow用户
提问于 2013-08-07 03:28:27
回答 1查看 1.7K关注 0票数 0

我试图使用requests库登录一个站点,但它不能像往常一样工作。

我希望站点像通过浏览器访问时一样发送cookie:

代码语言:javascript
复制
csrftoken: Bl5DOVcUge5VeRv771nAIUNbxmm9Z9l2

但是,我收到的全部内容如下:

代码语言:javascript
复制
__cfduid: d2f8e300a0b867e8a6147462f3977f8b11375815648197 for .example2.net/

这个可以像我预期的那样工作:

代码语言:javascript
复制
agent1 = requests.session()
agent1.get('https://example1.com/')
print agent1.cookies

返回:

代码语言:javascript
复制
<<class 'requests.cookies.RequestsCookieJar'>[<Cookie example1session=6ce1fa7fc23669078c9cf86001b34c4f for .example1.com/>, <Cookie countrycode=FR for example1.com/>, <Cookie csrftoken=ETcsKwBgUkPxPjgN6hJaOXv5byIL15mE for example1.com/>, <Cookie lat=46.0 for example1.com/>, <Cookie lon=2.0 for example1.com/>]>

这个不是:

代码语言:javascript
复制
agent2 =  requests.session()
agent2.get('https://www.example2.net')
print agent2.cookies

它返回:

代码语言:javascript
复制
<<class 'requests.cookies.RequestsCookieJar'>[<Cookie __cfduid=d14644e3e542bf4165a0714c0e77d04eb1375816707171 for .example2

__cfduid cookie与站点运行的CloudFlare DDOS保护服务有关。这会与这个问题有关吗?

EN

回答 1

Stack Overflow用户

发布于 2014-05-08 06:09:53

我发现了一个类似的问题。在我的例子中,我试图登录,发布到一个url,但服务器重定向了我。在这个重定向过程中,设置了cookie (正如我在浏览器中看到的那样),但是在我的python程序中没有设置cookie。

我发现定义一些类似于浏览器的头并禁用重定向解决了这个问题。

代码语言:javascript
复制
headers = {
        'Host': 'www.example.net',
        'Origin': 'http://www.example.net',
        'Referer': 'http://www.example.net/',
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/34.0.1847.131 Safari/537.36'}  

session = requests.Session()
session.headers = headers

session.post('http://www.example.net/login/', data=values, allow_redirects=False)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18088825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档