Dự án này bao gồm một trình crawl sách và một API sử dụng FastAPI để hiển thị thông tin sách đã thu thập. Dữ liệu được lưu vào thư mục data.
- Python > 3.12.
python3 -m venv .venv- Linux / macOS:
source .venv/bin/activate- Windows:
.venv\Scripts\activateTạo một file .env ở thư mục gốc và thêm các biến môi trường:
# Ví dụ
SECRET_KEY=your_very_secret_key
ALGORITHM=HS256
ACCESS_TOKEN_EXPIRE_MINUTES=60
BOOK_SCRAPE_URL="https://books.toscrape.com/catalogue/"
BOOKS_FILE = "data/books.json"
BOOKS_WITH_COUNTRY_FILE = "data/books_with_country.json"
USERS_FILE = "users.json"pip install -r requirements.txtChạy script để crawl dữ liệu và lưu vào thư mục data:
python3 run_scripts.pyDi chuyển vào thư mục src:
cd srcChạy server FastAPI:
uvicorn main:app --reloadMở trình duyệt và truy cập địa chỉ sau:
http://localhost:8000/docs
Tại đây, bạn có thể thử nghiệm các endpoint API một cách trực quan thông qua Swagger UI.
.
├── .venv/ # Môi trường ảo
├── .env # File cấu hình môi trường
├── html_backup/ # Thư mục html_backup
├── logs/ # Thư mục chứa log của dự án
├── data/ # Thư mục chứa dữ liệu sách sau khi crawl
│ └── books.json
│ └── books_with_country.json
├── run_scripts.py # Script để crawl sách
├── users.json # User Data
├── requirements.txt # Danh sách thư viện phụ thuộc
├── README.md # Tài liệu hướng dẫn
└── src/ # Source code FastAPI
├── main.py
├── auth.py
├── controllers/
├── models/
└── ...
- Đảm bảo Python 3.12 trở lên đã được cài đặt.
- Không push thư mục
.venvvà file.envlên Git. Hãy sử dụng.gitignore. - Kiểm tra file
books.jsonsau khi crawl để đảm bảo dữ liệu đã được lưu đúng.
Chúc bạn sử dụng dự án hiệu quả! 🚀