为什么用python爬虫根据url下载文件不需要创建session?

PenguinGoHack
  • 227

写了一个python爬虫来批量下载文件,但是有些疑惑。
我对session的理解不是很深,但是为什么我下载文件时不需要创建一个session呢?
我用的requests,在我抓取页面内容的时候需要创建session

session = requests.session()
html_doc = session.get(url).content

但是直接运行

url = 'FILE ADDR'
r = requests.get(url)
with open('1.pdf', 'wb') as f:
    f.write(r.content)

就可以下载文件到本地,为什么?

回复
阅读 3.9k
2 个回答

虽然楼上已经采纳了, 但还是有必要说明一下.

其实 requests.get 方法也创建了 session 的.

楼主可以翻一下 requests 的源码, 可以找到下面这样的代码的

def request(method, url, **kwargs):
    session = session.Session()
    return session.request(method=method, url=url, **kargs)
    
def get(url, **kargs):
    kwargs.setdefault('allow_redirets', True)
    return request('get', url, **kwargs)

session也就是会话,一般是用来确认用户身份或者记录用户状态的。

如果下载这个文件本身就不需要确认用户的身份,也就是说不需要登录就可以下载,那就没必要使用session。

宣传栏