这是一个用于清理(de-clutter)URL 列表的工具。 作为起点,我采用了 Somdev Sangwan 开发的出色工具 uro。但我想做一些改动、进行一些改进(比如处理 GUID),并让它更具可定制性。
urless 支持 Python 3。
在默认(全局)Python 环境中安装 urless。
pip install urless
或者
pip install git+https://github.com/xnl-h4ck3r/urless.git -v
你可以通过以下命令升级:
pip install --upgrade urless
使用 pipx 在隔离的 Python 环境中快速安装
pipx install git+https://github.com/xnl-h4ck3r/urless.git
| 参数 | 长参数 | 描述 |
|---|---|---|
| -i | --input | 要清理(de-clutter)的 URL 文件。 |
| -o | --output | 包含清理后 URL 列表的输出文件(默认:output.txt)。如果通过管道传给另一个程序,输出将写入 STDOUT。 |
| -fk | --filter-keywords | 以逗号分隔的关键字列表,用于排除链接(如果没有参数)。这将覆盖 config.yml 中指定的 FILTER_KEYWORDS 列表 |
| -fe | --filter-extensions | 以逗号分隔的要排除的文件扩展名列表。这将覆盖 config.yml 中指定的 FILTER_EXTENSIONS 列表 |
| -rp | --remove-params | 以逗号分隔的区分大小写参数列表,将从所有 URL 中移除。这将覆盖 config.yml 中指定的 REMOVE_PARAMS 列表。例如,这可用于移除缓存破坏(cache buster)参数。** |
| -ks | --keep-slash | 输入中 URL 末尾的尾随斜杠不会被移除。因此输出中可能存在相同的 URL,一个有尾随斜杠,一个没有。 |
| -khw | --keep-human-written | 默认情况下,任何路径部分包含超过 3 个连字符 (-) 的 URL 都会被移除,因为假定这是人工编写的内容(例如博客文章),不感兴趣。传递此参数将把它们保留在输出中。 |
| -kym | --keep-yyyymm | 默认情况下,任何路径中包含 /YYYY/MM(其中 YYYY 是年份,MM 是月份)的 URL 都会被移除,因为假定这是博客/新闻内容,不感兴趣。传递此参数将把它们保留在输出中。 |
| -rcid | --regex-custom-id | 请谨慎使用! 你的目标使用的自定义 ID 的正则表达式。请确保该值用引号传入。有关更多详细信息,请参阅下面的章节。 |
| -iq | --ignore-querystring | 移除查询字符串(包括 URL 片段 #),因此输出只包含唯一路径。 |
| -fnp | --fragment-not-param | 不要以与参数相同的方式处理 URL 片段 #,例如,如果链接包含过滤关键字和片段(或参数),通常该链接会被保留;但如果传了此参数且链接包含过滤词和片段,该链接将被移除。此外,如果传了此参数并使用 -iq / --ignore-querystring,当链接中没有查询字符串时,片段将不会被移除。 |
| -lang | --language | 如果传此参数,且存在多个 URL 的路径中包含不同的语言代码,则只会输出一个版本的 URL。代码在 config.yml 的 LANGUAGE 部分中指定。 |
| -c | --config | YML 配置文件的路径。如果未传递,它将在默认配置目录中查找 config.yml 文件,例如 ~/.config/urless/。 |
| -dp | --disregard-params | 如果 URL 带有参数,则不会进行某些过滤,因为默认情况下我们希望看到所有可能的参数。如果传递此参数,则无论是否存在任何参数,都会执行过滤。 |
| -nb | --no-banner | 隐藏工具横幅(tool banner)输出(如果你通过管道将输入传给 urless,默认情况下它是隐藏的)。 |
| --version | 显示当前版本号。 | |
| -v | --verbose | 详细输出 |
你基本上传入一个 URL 列表(来自文件,或通过 STDIN 管道输入),然后得到一个清理后的文件或 URL 列表。但它们是按什么方式被清理的呢? 下面我会解释这一点,但首先介绍一些将要使用的术语: