Skip to main content

Async Pixiv API for Python.

Project description

Async-Pixiv

Python 3.12 GitHub file size in bytes PyPI License

PyPI - Downloads View

异步调用 Pixiv API

Building...

此项目的开发者很忙,所以没啥时间修 bug ,写文档什么的

特点

  1. 支持 API 请求速率限制(RateLimiter
  2. 自动将请求后的数据转为 Model ,再也不用以字典形式调用获取数据了(pydantic typed)
  3. 支持多种代理模式(http/https/socks5)
  4. 支持下载 gif 帧序列文件,并将其转为 gif 或 mp4 (需要 ffmpeg
  5. 。。。(想到再写)

安装

使用 pip

pip install --upgrade async-pixiv

# 安装额外依赖(用于提升数据解析速度)
pip install --upgrade async-pixiv[speedups]

使用

from async_pixiv import PixivClient  # 导入
from async_pixiv.utils.rate_limiter import RateLimiter


# 初始化 Client
client = PixivClient(
    limiter=RateLimiter(100, 60),  # API 请求速率限制, 限制为 60 秒内最多请求 100 次。默认没有限制
    timeout=10,  # 默认超时秒数
    proxy=None,  # 代理配置
    trust_env=False,  # 是否从环境变量中获取代理配置
    retry_times=5,  # 默认请求重试次数
    retry_sleep=1,  # 默认重复请求间隔秒数
)


async def main():
    user = await client.login_with_token('TOKEN')  # 使用 token 登录 pixiv
    print(user.name)

    # 获取作品详情
    detail_result = await client.ILLUST.detail(91725675)
    illust = detail_result.illust
    print(
        f"链接:{illust.link}", 
        f"标题:{illust.title}", 
        f"作者:{illust.user.name}", 
        f"标签:#{' #'.join(map(str, illust.tags))}", 
        f"是否为 AI 作品:{'是' if illust.ai_type else '否'}",
        f"是否为 R18 作品:{'是' if await illust.is_r18() else '否'}",
        sep='\n'
    )
    file_data = illust.link.download() # 下载
    breakpoint()

    # 下载动图
    bytes_data = await illust.download_ugoira(result_type='mp4')  # bytes
    gif_data = await illust.download_ugoira(result_type='gif')
    breakpoint()

    # 小说
    novel_result = await client.NOVEL.detail(15739859)
    novel = novel_result.novel
    print(f"标题:{novel.title}", f"字数:{novel.text_length}", sep='\n')
    breakpoint()
    
    # 漫画
    # 下次再写

def __main__():
    import asyncio

    asyncio.run(main())


if __name__ == '__main__':
    __main__()

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_pixiv-1.1.2.tar.gz (40.4 kB view details)

Uploaded Source

Built Distribution

async_pixiv-1.1.2-py3-none-any.whl (50.9 kB view details)

Uploaded Python 3

File details

Details for the file async_pixiv-1.1.2.tar.gz.

File metadata

  • Download URL: async_pixiv-1.1.2.tar.gz
  • Upload date:
  • Size: 40.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.22.2 CPython/3.12.8 Linux/6.8.0-1020-azure

File hashes

Hashes for async_pixiv-1.1.2.tar.gz
Algorithm Hash digest
SHA256 86db1c16f05b6d904f0f34cf741c6816717afa79b52d41c117df21c30d2af5e1
MD5 ca237e6198228b755b99e4f6cd05d7b9
BLAKE2b-256 a7fdf4f1a05bdb4a4a313889f5640b9344d9ab7632be1fbf92e9cdbba490ce0c

See more details on using hashes here.

File details

Details for the file async_pixiv-1.1.2-py3-none-any.whl.

File metadata

  • Download URL: async_pixiv-1.1.2-py3-none-any.whl
  • Upload date:
  • Size: 50.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: pdm/2.22.2 CPython/3.12.8 Linux/6.8.0-1020-azure

File hashes

Hashes for async_pixiv-1.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 c479ae144da884ae55999cc124b9f82fc8ef158396f44b9af342d471a9072add
MD5 cc28ffc3c2bc1ff6873f362533dd8b67
BLAKE2b-256 573f084f8db47b7ba9317a06636c9609a1b15fe2fae7aca428ca6c06cc859634

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page