【问题标题】:python-requests does not grab JSESSIONID and SessionData cookiespython-requests 不抓取 JSESSIONID 和 SessionData cookie
【发布时间】:2015-06-17 05:53:17
【问题描述】:

我想从http://www.jstor.org/stable/pdf/10.1086/512825.pdf 抓取一个 pdf 文件,但它要我接受条款和条件。从浏览器下载时,我发现 JSTOR 将我的接受保存在 2 个名为 JSESSIONID 和 SessionData 的 cookie 中,但 python-requests 不抓取这两个 cookie(它抓取另外两个 cookie,但不抓取这些)。

这是我的会话实例化代码:

def get_raw_session():
    session = requests.Session()
    session.headers.update({'User-Agent': UserAgent().random})
    session.headers.update({'Connection': 'keep-alive'})
    return session

请注意,我之前曾多次将 python-requests 用于需要登录的站点,并且效果很好,但在这种情况下并非如此。

我想问题是 JSTOR 是用 jsp 构建的,而 python-requests 不支持。

有什么想法吗?

【问题讨论】:

  • 如何进行子序列请求?
  • r = session.get(link)

标签: python django session cookies python-requests


【解决方案1】:

以下代码对我来说非常好 -

import requests
from bs4 import BeautifulSoup

s = requests.session()
r = s.get('http://www.jstor.org/stable/pdf/10.1086/512825.pdf')
soup = BeautifulSoup(r.content)
pdfurl = 'http://www.jstor.org' + soup.find('a', id='acptTC')['href']
with open('export.pdf', 'wb') as handle:
    response = s.get(pdfurl, stream=True)
    for block in response.iter_content(1024):
        if not block:
            break
        handle.write(block)

【讨论】:

  • 感谢您的回答,但它不适用于我的机器。发生了同样的问题。 export.pdf 中有一个 3kb 的 html,告诉您必须同意条款和条件
  • 可能问题出在我的电脑上。我在另一台机器上部署了代码,它工作了!
  • 我很高兴它有帮助:)
猜你喜欢
  • 2022-01-03
  • 2023-03-09
  • 2022-07-25
  • 1970-01-01
  • 2019-05-18
  • 2019-04-26
  • 1970-01-01
  • 1970-01-01
  • 2019-04-09
相关资源
最近更新 更多