11# -*- coding: utf-8 -*-
2- # 国家中小学智慧教育平台 资源下载工具 v2.3
2+ # 国家中小学智慧教育平台 资源下载工具 v2.4
33# https://github.com/happycola233/tchMaterial-parser
4- # 最近更新于:2024-10-03
4+ # 最近更新于:2025-02-22
55# 作者:肥宅水水呀(https://space.bilibili.com/324042405)以及其他为本工具作出贡献的用户
66
77# 导入相关库
@@ -78,7 +78,8 @@ def parse(url: str) -> tuple[str, str, str] | tuple[None, None, None]: # 解析
7878 data = response .json ()
7979 for item in list (data ["ti_items" ]):
8080 if item ["lc_ti_format" ] == "pdf" : # 找到存有 PDF 链接列表的项
81- resource_url : str = item ["ti_storages" ][0 ].replace ("-private" , "" ) # 获取并构建 PDF 的 URL
81+ # resource_url: str = item["ti_storages"][0].replace("-private", "") # 获取并构建 PDF 的 URL
82+ resource_url : str = item ["ti_storages" ][0 ] # 获取并构建 PDF 的 URL
8283 break
8384
8485 if not resource_url :
@@ -89,7 +90,8 @@ def parse(url: str) -> tuple[str, str, str] | tuple[None, None, None]: # 解析
8990 if resource ["resource_type_code" ] == "assets_document" :
9091 for item in list (resource ["ti_items" ]):
9192 if item ["lc_ti_format" ] == "pdf" :
92- resource_url : str = item ["ti_storages" ][0 ].replace ("-private" , "" )
93+ # resource_url: str = item["ti_storages"][0].replace("-private", "")
94+ resource_url : str = item ["ti_storages" ][0 ]
9395 break
9496 if not resource_url :
9597 return None , None , None
@@ -102,7 +104,7 @@ def parse(url: str) -> tuple[str, str, str] | tuple[None, None, None]: # 解析
102104
103105def download_file (url : str , save_path : str ) -> None : # 下载文件
104106 global download_states
105- response = session .get (url , stream = True )
107+ response = session .get (url , headers = headers , stream = True )
106108 total_size = int (response .headers .get ("Content-Length" , 0 ))
107109 current_state = { "download_url" : url , "save_path" : save_path , "downloaded_size" : 0 , "total_size" : total_size , "finished" : False , "failed" : False }
108110 download_states .append (current_state )
@@ -307,6 +309,11 @@ def thread_it(func, args: tuple = ()): # args 为元组,且默认值是空元
307309
308310# 初始化请求
309311session = requests .Session ()
312+ # 设置请求头部,包含认证信息
313+ headers = {
314+ "X-ND-AUTH" : 'MAC id="0",'
315+ 'nonce="0",mac="0"'
316+ }
310317session .proxies = { "http" : None , "https" : None }
311318
312319# 获取资源列表
0 commit comments