URL-адрес, который вы предоставляете модулю запросов, представляет собой просто URL-адрес одного файла MathJax.js
, поэтому вы получаете только этот файл в качестве вывода. То, что вы хотите, это загрузить полный каталог mathjax/2.7.5/
. Однако, если мы запрашиваем весь каталог, сервер запрещает такие запросы.
Альтернативный подход заключается в получении относительных путей ко всем файлам из основного каталога, который у вас уже есть, как показано на рисунке. Затем вы можете загрузить каждый файл независимо и сохранить его в соответствующей папке. В конце у вас будет готов весь каталог.
Для этого попробуйте следующий код.
import requests
import os
baseUrl="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/" #Base URL for the main directory
#List containing relative paths of all required files
relativePaths=['config/Safe.js?V=2.7.5',
'config/TeX-AMS-MML_HTMLorMML.js?V=2.7.5',
'extensions/Safe.js?V=2.7.5',
'jax/output/SVG/fonts/TeX/fontdata.js?V=2.7.5',
'jax/output/SVG/jax.js?V=2.7.5',
'MathJax.js?config=TeX-AMS-MML_HTMLorMML%2CSafe.js&ver=4.1']
parentDir='\\'.join(baseUrl.split('/')[-3:]) #Parent directory from URL
for path in relativePaths: #For all files
req=requests.get(baseUrl+path) #forming url
filename=path.split("/")[-1].split("?")[0] #extracting filename out of url
directory=os.path.join(parentDir,"\\".join(path.split('/')[:-1])) #Extracting directories path for local path formation
if not os.path.exists(directory): #Creating local direcories if they do not exist
os.makedirs(directory)
with open(os.path.join(directory,filename),"wb+") as file: #Storing results into files
file.write(req.content)
Вывод структуры локального каталога: