写了一个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)
就可以下载文件到本地,为什么?
session也就是会话,一般是用来确认用户身份或者记录用户状态的。
如果下载这个文件本身就不需要确认用户的身份,也就是说不需要登录就可以下载,那就没必要使用session。
虽然楼上已经采纳了, 但还是有必要说明一下.
其实 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)