为什么用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。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏