关于#python#的问题:怎么实现通过requests模块来下载网址中的pdf文件

如何使用python requests模块下载飞书云文档中的文件?网址为:


怎么实现通过requests模块来下载网址中的pdf文件?

需要cookie,可以替换为你自己的cookie

import requests

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.34",
    "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",

"Cookie": "passport_web_did=7083842342976929794; lang=zh; QXV0aHpDb250ZXh0=adf4360bd319441e83cccff314a06f48; session=U7CK1RF-e53k12ab-5a7b-4450-8df1-a69a0409fbe9-NN5W4; is_anonymous_session=1; _csrf_token=9ff026f69c28e7ae5b6baf9c75848fced24758d9-1665026386; __tea__ug__uid=7151233830274729486; swp_csrf_token=469f8b9c-7362-400c-b119-d57707be6205; t_beda37=480380ec223a2d7a1aefba81d64d4495b2d535ade54cff1883af1d24af2c234c",

}


r = requests.get("https://internal-api-drive-stream.feishu.cn/space/api/box/stream/download/all/boxcn82lJAzN0fDvIj3bPwDD3Ah/?mount_point=explorer", stream=True, headers=headers)
print(r.headers)
with open(r"1.pdf", "wb") as f:
    for chunk in r.iter_content(chunk_size=512):
        f.write(chunk)

试试


import requests
 
url = 'xxxxxxxx' # 目标下载链接
r = requests.get(url) # 发送请求
# 保存
with open ('r.pdf', 'rb') as f:
 f.write(r.content)
 f.close

只要个session就完了 而且还是不变的我看好像
获取文件名写进去

import requests

import urllib
from urllib import parse

session = requests.Session()

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.34",
    "Accept-Language": "zh-CN,zh;q=0.8",
    "Cookie": "session=U7CK1RF-e53k12ab-5a7b-4450-8df1-a69a0409fbe9-NN5W4",
}

URL = "https://internal-api-drive-stream.feishu.cn/space/api/box/stream/download/all/boxcn82lJAzN0fDvIj3bPwDD3Ah/?mount_point=explorer"

content = session.get(URL, headers=headers, allow_redirects=True).content

file = session.head(URL, headers=headers)

filename = file.headers['Content-Disposition'].split(';')[-1][18:]

file = urllib.parse.unquote(filename)
with open(file, 'wb') as f:
    f.write(content)
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^