2024年2月24日更新

用ThreadPoolExecutor代替了multiprocessing pool,增加了ts分段下载错误的重试(10次),这样可以避免评论中提到的

Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Program Files\Python36\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "D:\SealGod\Desktop\gui91.py", line 85, in start_download
    p.map(downloader,ts_list)
  File "C:\Program Files\Python36\lib\multiprocessing\pool.py", line 266, in map
    return self._map_async(func, iterable, mapstar, chunksize).get()
  File "C:\Program Files\Python36\lib\multiprocessing\pool.py", line 644, in get
    raise self._value
multiprocessing.pool.MaybeEncodingError: Error sending result: '<multiprocessing.pool.ExceptionWithTraceback object at 0x000002197FE004E0>'. Reason: 'TypeError("cannot serialize '_io.BufferedReader' object",)'

的问题。

代码已更新。

前言

和之前的写的基本上一样,只不过加入了GUI界面,甚至还阉割了一点功能……比如

  1. 取消了进度条
    不知道是不是我这个电脑太垃圾了,我点击下载之后就会卡死,下载完了才会跳出进度条
  2. 取消了打包成exe的文件
    打包完实在是太大了。尽管我已经是在虚拟环境中打包的了,但软件体积仍然能臃肿到有到37M。

使用教程

1 确保所需要的软件包已经安装

你需要安装:

  1. python3
  2. requests
  3. bs4
  4. lxml
  5. pillow
  6. easygui

2 运行这个Python文件

在命令行(cmd)输入“python+你的文件地址”来运行,比如

python C:\Users\rvw\Desktop\gui91.py

3 在视频地址的输入框中填入视频的viewkey

这个viewkey在91视频的地址栏中可以看到。我这个程序自带了一个viewkey做示范,把它替换掉即可,然后点击解析