Skip to main content

北京化工大学课程平台PDF下载工具,支持登录、下载PPT和PDF文件

Project description

buct-pdf

北京化工大学课程平台PDF下载工具,支持登录、下载PPT和PDF文件。

功能特性

  • 🔐 自动登录北化课程平台
  • 📄 下载PPT文件并转换为PDF
  • 📥 直接下载PDF文件
  • 🖥️ 命令行界面支持
  • 📦 可作为Python库导入使用

安装

使用 pip 安装

pip install buct-pdf

从源码安装

git clone https://github.com/your-username/buct-pdf.git
cd buct-pdf
pip install -e .

使用方法

作为命令行工具

交互式模式(推荐)

buct-pdf -i

直接使用(保持原有体验)

python buct-pdf.py

作为Python库

from buct_pdf import GetsPdf, LoginError, NetworkError

# 创建下载器实例
downloader = GetsPdf()

try:
    # 登录
    downloader.login("your_student_id", "your_password")
    
    # 下载PPT并转换为PDF
    ppt_url = "https://course.buct.edu.cn/meol/analytics/resPdfShow.do?resId=12345&lid=67890"
    pdf_path = downloader.download_ppt_to_pdf(ppt_url, "./downloads")
    print(f"PPT下载完成: {pdf_path}")
    
    # 直接下载PDF文件
    pdf_url = "https://course.buct.edu.cn/meol/analytics/resPdfShow.do?resId=54321&lid=09876"
    pdf_path = downloader.download_pdf(pdf_url, "./downloads")
    print(f"PDF下载完成: {pdf_path}")
    
except LoginError as e:
    print(f"登录错误: {e}")
except NetworkError as e:
    print(f"网络错误: {e}")
finally:
    # 注销登录
    downloader.logout()

API文档

GetsPdf 类

主要的下载器类,提供所有核心功能。

方法

  • login(username, password): 登录到北化课程平台
  • logout(): 注销登录
  • is_logged_in(): 检查登录状态
  • download_ppt_to_pdf(url, output_dir="."): 下载PPT并转换为PDF
  • download_pdf(url, output_dir="."): 直接下载PDF文件
  • set_base_url(base_url): 设置基础URL(用于测试)
  • get_session(): 获取认证后的session对象

异常类

  • LoginError: 登录相关错误
  • NetworkError: 网络相关错误

开发

环境设置

# 克隆仓库
git clone https://github.com/your-username/buct-pdf.git
cd buct-pdf

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装开发依赖
pip install -e .

运行测试

python -m pytest tests/

代码格式化

black buct_pdf/
ruff check buct_pdf/

项目结构

buct-pdf/
├── buct_pdf/           # 主要库代码
│   ├── __init__.py    # 库入口
│   ├── core.py        # 核心功能实现
│   └── cli.py         # 命令行接口
├── examples/          # 使用示例
├── tests/            # 测试代码
├── buct-pdf.py       # 兼容性脚本
├── pyproject.toml    # 项目配置
└── README.md         # 项目说明

许可证

MIT License

贡献

欢迎提交 Issue 和 Pull Request!

更新日志

v0.1.0

  • 初始版本发布
  • 支持登录、PPT下载和PDF下载功能
  • 提供命令行和Python库两种使用方式

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

buct_pdf-0.4.0.tar.gz (8.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

buct_pdf-0.4.0-py3-none-any.whl (7.5 kB view details)

Uploaded Python 3

File details

Details for the file buct_pdf-0.4.0.tar.gz.

File metadata

  • Download URL: buct_pdf-0.4.0.tar.gz
  • Upload date:
  • Size: 8.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for buct_pdf-0.4.0.tar.gz
Algorithm Hash digest
SHA256 d727fbfbcd703c2e956fed6b259f15f7421ec6bed06a1e47fba870fdc4973969
MD5 ed9a919bde7298b795fb990c214f8cc0
BLAKE2b-256 89aaa4aa51cf86c00a70f6248155c18ab7114e8910b65c778e9970b87e2e958a

See more details on using hashes here.

File details

Details for the file buct_pdf-0.4.0-py3-none-any.whl.

File metadata

  • Download URL: buct_pdf-0.4.0-py3-none-any.whl
  • Upload date:
  • Size: 7.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.12

File hashes

Hashes for buct_pdf-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ac4f7cfa5a104b615b6ae0c8f38b79108e141827e5cb60452b9deab338aba24b
MD5 2bfd28c608b0321bfcd13b6f52184b6a
BLAKE2b-256 c84fb37e5f17104a8dbd753e57d3c46b3ef24e2616004b1a14cbf96c8eb8091d

See more details on using hashes here.

Supported by

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