搜索,过滤,检查,从danbooru和本地文件夹下载文章。

lunafind的Python项目详细描述


LunaFind

PyPI downloadsPyPI versionPyPI pyversions

从danbooru/safebooru搜索、筛选、检查、下载帖子并找到它们 从命令行返回而不设置任何服务或数据库。

适合日常终端使用,可用于脚本和库 对于python 3.6+。

另请参见lunasync自动 使用lunafind下载并保持同步的特定标记, 类似于danbooru标记订阅或保存的搜索。

功能

  • 对标记搜索、URL或文件路径进行操作
  • 合并多个搜索的结果
  • 禁止/隐藏的帖子是自动的 decensored如果可能的话
  • 指定自定义页面范围,或只获取所有内容
  • 筛选并排序booru结果以绕过两个标记的搜索限制
  • 用于筛选和本地搜索的可选部分/模糊标记匹配
  • 按标签搜索下载的帖子,就像它们在booru上一样,没有 设置一个的麻烦
  • 在索引
  • 后的大多数情况下,本地搜索会立即产生结果。
  • 快速多线程下载;默认情况下并行下载8次
  • 支持在后媒体(图像、Ugoira WebM等)、信息、便条上操作, 艺术家评论:
    • 获取URL或文件/文件夹路径
    • 在标准输出上打印
    • 正在下载

本地搜索性能

第一次进行本地post搜索时,使用索引文件来加速将来的搜索 当新的post目录时,将自动创建和更新搜索 存在或被移除。

在同一目录下测试约165000个帖子, 平均单核性能的cpu (AMD FX-8300-目前还没有从多核中获益的机会), 通用7200RPM硬盘,BTRFS文件系统,void Linux 4.18.14 x86_64:

  • 从零开始索引所有东西大约需要2米30秒到3米。
  • 在此之后,搜索结果将立即出现,除非--random或 ^使用{}。
  • 搜索在8-20秒内完成。

命令行用法

下载到当前文件夹中,每篇文章都标记为blonde2girls (默认booru是https://danbooru.donmai.us):

    lunafind "blonde 2girls" --limit 200 --pages all --download .

搜索我们刚刚下载的帖子, 打印结果的图像路径:

    lunafind "blonde blue_eyes rating:s score:>5" --source . --show-location media

有关所有选项和示例,请参见lunafind --help

python用法

还没有真正的文件。提供三个主要类:

  • Post:表示本地或远程的单个post及其信息、媒体、注释 以及艺术评论。

  • Album:工作方式类似于Post的字典,其中键是post id。 有神奇的方法和操作员,以便于与他们合作。 可过滤、订购、下载等。

  • Stream:一个高效的惰性迭代器,产生posts。 可过滤和多线程下载。

复制上面一节中的命令行示例:

fromlunafindimportStreamStream("blonde 2girls",limit=200,pages="all").download()forpostinStream("blonde blue_eyes rating:s score:>5",client="."):print(post.get_location("media"))

安装

需要Python3.6+和PIP(用于自动轻松安装)。
在gnu/linux和windows 7上测试,可能在osx和其他posix上工作 系统。
作为根用户:

    pip3 install -U lunafind

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java hibernate。MappingException持久类未知   其余的都是java。lang.ClassNotFoundException:雅加达。servlet。在Tomcat 9上运行时在Maven/Jersey web服务上进行筛选   java从异步任务返回结果   java阶乘程序打印出递归   停止或重新部署Spring 3.1.2、Hibernate 4.1.0、Spring DataJpa 1.1.0、Tomcat 7.0.30时出现java内存泄漏   java如何在配置文件中生成计算属性   集合java 8将ListB的所有元素合并到ListA中(如果不存在)   运行mvn verify时,java为'test'配置文件中的测试设置defaultbinder   java如何在Hashmap中删除重复的键值对?不只是复制键或值   java如何编程一个按钮以成功加载数组中的下一个数据   java将ASCII数据发送到Android Things上的UART3,最后是3个字节0xFF   多线程Java并发递增一个值   java Android应用程序登录和登录问题