首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Python请求:会话、Cookie和POST

使用Python请求:会话、Cookie和POST
EN

Stack Overflow用户
提问于 2013-04-03 11:43:55
回答 1查看 158.5K关注 0票数 42

我正在尝试使用StubHub API抓取一些销售数据。下面是此数据的一个示例:

https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata

你会注意到,如果你在没有登录到stubhub.com的情况下尝试访问这个url,它将不会工作。You will need to login first

通过web浏览器登录后,在新选项卡中打开要抓取的URL,然后使用以下命令检索抓取的数据:

代码语言:javascript
运行
复制
r = requests.get('https://sell.stubhub.com/sellapi/event/4236070/section/null/seatmapdata')

但是,一旦浏览器会话在十分钟后过期,我就会得到这个错误:

代码语言:javascript
运行
复制
<FormErrors>
<FormField>User Auth Check</FormField>
<ErrorMessage>
Either is not active or the session might have expired. Please login again.
</ErrorMessage>

我认为我需要通过cookie实现会话ID,以保持我的身份验证有效。

Requests库文档对于从来没有做过这类事情的人来说是非常可怕的,所以我希望你们能提供帮助。

Requests提供的示例如下:

代码语言:javascript
运行
复制
s = requests.Session()

s.get('http://httpbin.org/cookies/set/sessioncookie/123456789')
r = s.get("http://httpbin.org/cookies")

print r.text
# '{"cookies": {"sessioncookie": "123456789"}}'

老实说,我对此一无所知。如何在POST请求之间保留cookies?

EN

Stack Overflow用户

发布于 2013-04-04 02:15:02

我不知道stubhub的api是如何工作的,但通常它应该是这样的:

代码语言:javascript
运行
复制
s = requests.Session()
data = {"login":"my_login", "password":"my_password"}
url = "http://example.net/login"
r = s.post(url, data=data)

现在,您的会话包含登录表单提供的cookie。要访问此会话的cookie,只需使用

代码语言:javascript
运行
复制
s.cookies

任何进一步的操作,如其他请求,都将具有此cookie

票数 75
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15778466

复制
相关文章

相似问题

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