【问题标题】:requests.session() cannot update the cookies automaticallyrequests.session() 无法自动更新 cookie
【发布时间】:2018-06-27 00:36:36
【问题描述】:

我正在使用 python 3.5.2。我想废弃一个需要 cookie 的网页。但是当我使用 requests.session() 时,会话中维护的 cookie 没有更新,因此我的抓取不断失败。以下是我的代码 sn-p。

import requests
from bs4 import BeautifulSoup
import time
import requests.utils

session = requests.session()
session.headers.update({"User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"})
print(session.cookies.get_dict())
url = "http://www.beianbaba.com/"
session.get(url)
print(session.cookies.get_dict())

你们对此有任何想法吗?非常感谢您。

【问题讨论】:

  • 有人可以帮帮我吗?我在线等!!

标签: python python-requests session-cookies


【解决方案1】:

该网站请求似乎未提供任何 cookie。我使用了完全相同的代码,但要求https://google.com

import requests

session = requests.Session()
session.headers.update({"User-Agent": "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0"})
print(session.cookies.get_dict())
url = "http://google.com/"
session.get(url)
print(session.cookies.get_dict())

得到了这个输出:

{}
{'NID': 'a cookie that i removed'}

【讨论】:

  • 我知道它适用于大多数网站。但在某些情况下,cookie 没有更新,会话会给出一个空的 cookie jar。例如,网站 www.jd.com 的抓取行为是这样的。事实上,当通过浏览器请求 url(www.beanbaba.com 和 www.jd.com)时,浏览器的 cookie 会正确更新。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-12
  • 2012-02-13
  • 1970-01-01
  • 2018-03-02
  • 2014-10-31
  • 1970-01-01
相关资源
最近更新 更多