web - 为什么用python爬虫根据url下载文件不需要创建session?
大家讲道理
大家讲道理 2017-04-17 17:18:10
[Python讨论组]

写了一个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)

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

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回复(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。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号