import requests
URL = "https://deepnote.com/collab/{}/project/{}/download-file?path={}"
DEEPNOTE_COOKIES = """
ahoy_visitor=...; __stripe_mid=...; ajs_user_id=...; .......
"""
cookies_array = DEEPNOTE_COOKIES.split("; ")
COOKIES = {}
for cookie in cookies_array:
array_local = cookie.split("=")
key = array_local[0]
if len(array_local) == 2:
value = array_local[1]
else:
value = "".join(array_local[1:-1])
COOKIES[key.replace("\n", "")] = value.replace("\n", "")
def is_ok_url(url):
r = requests.get(url, cookies=COOKIES)
return (not r.content == b'Unauthorized') and (not r.content == b'Project not found'), r.content
def get_url(collab, project, path):
return URL.format(collab, project, path)
ID = "id"
FILES = "files"
PATH = "path"
LOCAL_PATH = "local_path"
WHAT_TO_DOWNLOAD = [
{
ID: "....",
FILES: [
{
PATH: "data/similar.json",
LOCAL_PATH: "data/similar.json"
}
]
}
]
def save_file(content, path):
with open(path, 'wb+') as f:
f.write(content)
print("Saved file to {}".format(path))
for project in WHAT_TO_DOWNLOAD:
valid_collab = -1
for downloading_file in project[FILES]:
if valid_collab == -1:
local_valid_collab = 0
for i in range(50):
url = get_url(local_valid_collab, project[ID], downloading_file[PATH])
is_ok, content = is_ok_url(url)
if is_ok:
valid_collab = local_valid_collab
save_file(content, downloading_file[LOCAL_PATH])
break
local_valid_collab += 1
else:
url = get_url(valid_collab, project[ID], downloading_file[PATH])
is_ok, content = is_ok_url(url)
save_file(content, downloading_file[LOCAL_PATH])
Saved file to data/similar.json