python-requests不会获取JSESSIONID和SessionData cookie

时间:2015-06-16 15:57:37

标签: python django session cookies python-requests

我想从http://www.jstor.org/stable/pdf/10.1086/512825.pdf抓取一个pdf文件,但它希望我接受条款和条件。从浏览器下载时,我发现JSTOR在名为JSESSIONID和SessionData的2个cookie中保存了我的认可,但是python-requests没有抓住这两个cookie(它抓住了另外两个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请求登录所需的网站,并且效果很好,但在这种情况下它并非如此。

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

任何想法?

1 个答案:

答案 0 :(得分:0)

以下代码对我来说非常合适 -

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)