Files
MediaCrawler/pyproject.toml
hsparks.codes 46ef86ddef feat: Add Excel export functionality and unit tests
Features:
- Excel export with formatted multi-sheet workbooks (Contents, Comments, Creators)
- Professional styling: blue headers, auto-width columns, borders, text wrapping
- Smart export: empty sheets automatically removed
- Support for all platforms (xhs, dy, ks, bili, wb, tieba, zhihu)

Testing:
- Added pytest framework with asyncio support
- Unit tests for Excel store functionality
- Unit tests for store factory pattern
- Shared fixtures for test data
- Test coverage for edge cases

Documentation:
- Comprehensive Excel export guide (docs/excel_export_guide.md)
- Updated README.md and README_en.md with Excel examples
- Updated config comments to include excel option

Dependencies:
- Added openpyxl>=3.1.2 for Excel support
- Added pytest>=7.4.0 and pytest-asyncio>=0.21.0 for testing

This contribution adds immediate value for users who need data analysis
capabilities and establishes a testing foundation for future development.
2025-11-28 04:44:12 +01:00

46 lines
1.1 KiB
TOML

[project]
name = "mediacrawler"
author = "程序员阿江-Relakkes <relakkes@gmail.com>"
version = "0.1.0"
description = "A social media crawler project, support Xiaohongshu, Weibo, Zhihu, Bilibili, Douyin, BaiduTieBa etc."
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
"aiofiles~=23.2.1",
"aiomysql==0.2.0",
"aiosqlite>=0.21.0",
"alembic>=1.16.5",
"asyncmy>=0.2.10",
"cryptography>=45.0.7",
"fastapi==0.110.2",
"httpx==0.28.1",
"jieba==0.42.1",
"matplotlib==3.9.0",
"motor>=3.3.0",
"opencv-python>=4.11.0.86",
"pandas==2.2.3",
"parsel==1.9.1",
"pillow==9.5.0",
"playwright==1.45.0",
"pydantic==2.5.2",
"pyexecjs==1.5.1",
"pyhumps>=3.8.0",
"python-dotenv==1.0.1",
"redis~=4.6.0",
"requests==2.32.3",
"sqlalchemy>=2.0.43",
"tenacity==8.2.2",
"typer>=0.12.3",
"uvicorn==0.29.0",
"wordcloud==1.9.3",
"xhshow>=0.1.3",
"pre-commit>=3.5.0",
"openpyxl>=3.1.2",
"pytest>=7.4.0",
"pytest-asyncio>=0.21.0",
]
[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"
default = true