【问题标题】:Python requests including cookies error outPython 请求,包括 cookie 错误输出
【发布时间】:2014-11-19 03:28:23
【问题描述】:

我正在尝试使用 Requests 模块在 python 上发出 get 请求,同时合并现有的 Cookie,我的代码如下所示:

import requests

url="https://stackoverflow.com/"
headers = {"User-Agent", "Mozilla/5.0"}
cookie = {
    "domain": ".stackoverflow.com",
    "expirationDate": "1458316186",
    "hostOnly": "false",
    "httpOnly": "false",
    "name": "__qca",
    "path": "/",
    "secure": "false",
    "session": "false",
    "storeId": "0",
    "value": "P0-SOMEVALUE-SOMEVALUE",
    "id": 1
}

print requests.get(url, cookies=cookie).text


Traceback (most recent call last):
  File "test.py", line 19, in <module>
    print requests.get(url, cookies=cookie).text
  File "C:\Python27\lib\site-packages\requests\api.py", line 55, in get
    return request('get', url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\api.py", line 44, in request
    return session.request(method=method, url=url, **kwargs)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 422, in request
    prep = self.prepare_request(req)
  File "C:\Python27\lib\site-packages\requests\sessions.py", line 360, in prepare_request
    hooks=merge_hooks(request.hooks, self.hooks),
  File "C:\Python27\lib\site-packages\requests\models.py", line 296, in prepare
    self.prepare_cookies(cookies)
  File "C:\Python27\lib\site-packages\requests\models.py", line 491, in prepare_cookies
    cookie_header = get_cookie_header(self._cookies, self)
  File "C:\Python27\lib\site-packages\requests\cookies.py", line 134, in get_cookie_header
    jar.add_cookie_header(r)
  File "C:\Python27\lib\cookielib.py", line 1326, in add_cookie_header
    attrs = self._cookie_attrs(cookies)
  File "C:\Python27\lib\cookielib.py", line 1285, in _cookie_attrs
    self.non_word_re.search(cookie.value) and version > 0):
TypeError: expected string or buffer

不完全确定我做错了什么......

【问题讨论】:

标签: python cookies python-requests


【解决方案1】:

Cookie 应该只是键值对。您包含了更多内容,您包含了浏览器跟踪的所有 cookie 元数据,控制客户端代码如何返回或访问此类 cookie。

让你的 cookie 只是一个键值对:

cookies = {'__qca': 'P0-SOMEVALUE-SOMEVALUE'}

映射中的其他所有内容都不是发送到服务器的 Cookie 标头的一部分

在这种特定情况下,引发异常的是 'id': 1 键值对,因为 requests 期望它所看到的 id cookie 的值是字符串,而不是整数。

【讨论】:

  • 谢谢!似乎它可以正常工作并设法正确获取请求,但是将响应转录为文本 html 时出现问题......有什么想法吗?
  • @Stupid.Fat.Cat:这个问题与您的控制台有关,请参阅Python, Unicode, and the Windows console。此外,这是一个新问题,与 cookie 问题不同。
猜你喜欢
  • 1970-01-01
  • 2021-08-21
  • 2020-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多