Async Pixiv API for Python
Project description
Async-Pixiv
异步调用 Pixiv API
Building...
此项目的开发者很忙,所以没啥时间修 bug ,写文档什么的
特点
- 支持 API 请求速率限制(RateLimiter)
- 可使用账号和密码直接登录 Pixiv(注:可能会因为遇到 Cloudflare 验证而登录失败)
- 自动将请求后的数据转为 Model ,再也不用以字典形式调用获取数据了(pydantic typed)
- 支持多种代理模式(http/https/socks5)
- 支持下载 gif 帧序列文件,并将其转为 gif 或 mp4 (需要 ffmpeg)
- 。。。(想到再写)
安装
使用 pip
(任选一行指令进行安装)
pip install --upgrade async-pixiv
# 安装额外依赖(用于提升数据解析速度)
pip install --upgrade async-pixiv[extra]
# 安装 playwright,使之可以使用账号密码登录
pip install --upgrade async-pixiv[playwright]
# 安装全部额外依赖
pip install --upgrade async-pixiv[full]
使用 poetry
poetry add async-pixiv
# 安装额外依赖(用于提升数据解析速度)
poetry add async-pixiv[extra]
# 安装 playwright,使之可以使用账号密码登录
poetry add async-pixiv[playwright]
# 安装全部额外依赖
poetry add async-pixiv[full]
使用
from async_pixiv import PixivClient # 导入
# 初始化 Client
client = PixivClient(
max_rate=100, # API 请求速率限制。默认 100 次
rate_time_period=60, # API 请求速率限制时间区间。默认 60 秒
timeout=10, # 默认超时秒数
proxies=None, # 代理配置
trust_env=False, # 是否从环境变量中获取代理配置
retry=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.download() # 下载
breakpoint()
# 下载动图
bytes_data = await client.ILLUST.download_ugoira(105369892, type='mp4') # bytes
gif_data = await client.ILLUST.download_ugoira(105369892, 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
Release history Release notifications | RSS feed
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.0.0a1.tar.gz
(39.7 kB
view details)
Built Distribution
File details
Details for the file async_pixiv-1.0.0a1.tar.gz
.
File metadata
- Download URL: async_pixiv-1.0.0a1.tar.gz
- Upload date:
- Size: 39.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.11.1 readme-renderer/44.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/2.2.2 tqdm/4.66.5 importlib-metadata/7.1.0 keyring/25.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2093a19bf40792b10f6710f994b1c8f0e133d50a1a8ec0370417b3c0c2921dda |
|
MD5 | b3cad168419ccb0dbb6af3fd7b27582d |
|
BLAKE2b-256 | 46dc6af7aa7facbe7807fb7f36e4216c01d19770723a88e0d9d13bb6dc72ac8a |
File details
Details for the file async_pixiv-1.0.0a1-py3-none-any.whl
.
File metadata
- Download URL: async_pixiv-1.0.0a1-py3-none-any.whl
- Upload date:
- Size: 50.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.8.0 pkginfo/1.11.1 readme-renderer/44.0 requests/2.32.3 requests-toolbelt/1.0.0 urllib3/2.2.2 tqdm/4.66.5 importlib-metadata/7.1.0 keyring/25.3.0 rfc3986/2.0.0 colorama/0.4.6 CPython/3.10.12
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1e952aed9609a404889268dcbe918cba46cb1f933ed228613d3cf77933935f9 |
|
MD5 | 74a9dce31a7c510654b9860ae54a67a7 |
|
BLAKE2b-256 | d36b447c9e7784649e9834b759883a3829014cc200312fe52cde637fd8247789 |