Alist爬虫

注:请勿用于违法、违规行为,仅出于个人学习目的。

为了整理自己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网盘里有哪些文件。