爬虫AlistAlist爬虫
理理注:请勿用于违法、违规行为,仅出于个人学习目的。
为了整理自己Alist上的文件,我突发奇想,能不能让最近很火的deepseek写python脚本,爬取我的Alist网站并打印出路径呢?于是用AI写了三个脚本。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45
| import requests
# 配置信息 ALIST_URL = "http://xxxxx.xxx/" # Alist网盘地址 TARGET_FOLDER = "xxxx" # 目标文件夹路径 OUTPUT_FILE = "output.txt" # 输出文件名
# 获取文件夹列表 def get_folder_content(parent_path): url = f"{ALIST_URL}/api/fs/list" params = { "path": f"/{parent_path}" } response = requests.get(url, params=params) try: return response.json()["data"]["content"] except (requests.exceptions.JSONDecodeError, KeyError): print("无法解析文件列表,请检查目标路径是否正确或网站是否支持匿名访问。") return []
# 递归遍历文件夹 def traverse_folders(path): content = get_folder_content(path) for item in content: full_path = f"{TARGET_FOLDER}/{item['name']}" if path == TARGET_FOLDER else f"{path}/{item['name']}" if item["is_dir"]: print(f"进入文件夹: {full_path}") traverse_folders(full_path) else: # 输出到文件 with open(OUTPUT_FILE, "a", encoding="utf-8") as f: f.write(f"{ALIST_URL}/{full_path}\n") print(f"{ALIST_URL}/{full_path}") # 同时打印在控制台
# 主函数 def main(): print(f"开始遍历:{TARGET_FOLDER}") traverse_folders(TARGET_FOLDER) print(f"\n遍历完成!结果已保存到 {OUTPUT_FILE}")
# 运行 if __name__ == "__main__": main()
|
只要把Alist网盘地址和目标文件夹路径改一下就好了。
这个脚本的目的是用于统计列举Alist网盘里有哪些文件。