Dự án này là một công cụ thu thập dữ liệu (crawler) tự động dành cho trang web báo Dân Trí (dantri.com.vn). Nó sử dụng Selenium WebDriver để truy cập và trích xuất nội dung bài viết, sau đó lưu trữ dữ liệu thô vào file văn bản để phục vụ phân tích và xử lý tiếp theo.
- Thu thập nội dung thô từ các bài viết trên Dân Trí.
- Sử dụng trình duyệt Brave hoặc Chrome trong chế độ headless để tránh phát hiện tự động.
- Lưu trữ dữ liệu vào file
.txtvới định dạng dễ đọc. - Hỗ trợ logging chi tiết để theo dõi quá trình crawl.
- Ngôn ngữ: Python 3.14
- Thư viện chính:
- Selenium: Để điều khiển trình duyệt và tương tác với trang web.
- WebDriver Manager: Quản lý tự động ChromeDriver.
- Logging: Ghi log các sự kiện trong quá trình crawl.
- Công cụ bổ sung: BeautifulSoup (đề xuất cho parsing HTML trong tương lai).
Dự án tuân thủ quy trình 3 giai đoạn:
- Thu thập nội dung thô: Trích xuất văn bản từ thẻ
<p>và<a>. - Lọc và lưu trữ: Loại bỏ dữ liệu rác và ghi vào file
.txt. - Chuẩn hóa định dạng: Chuyển đổi sang JSON hoặc định dạng khác nếu cần.
- Python 3.14+
- Trình duyệt Brave hoặc Chrome đã cài đặt.
- Các thư viện trong
requirement.txt.
- Clone repository này.
- Tạo virtual environment:
python -m venv venv - Kích hoạt venv:
venv\Scripts\activate(Windows) - Cài đặt dependencies:
pip install -r requirement.txt - Đổi tên file
.env.examplethành.envvà điền API key cho Gemini (GEMINI_API_KEY). - Tạo thư mục
datavà các thư mục conrawvàprocessed:mkdir -p data/raw data/processed - Tạo file
log.txtđể lưu log của quá trình crawl. - Chạy chương trình chính:
python main.pyvà nhập chủ đề, số lượng bài khi được yêu cầu.
Chạy chương trình chính:
python main.pyChương trình sẽ yêu cầu nhập URL bài báo Dân Trí, sau đó crawl dữ liệu thô, phân tích bằng Gemini AI và lưu kết quả JSON vào data/processed/.
- Tuân thủ Style Guide trong
.instructions/style_guide.md. - Sử dụng Type Hinting và Pattern Matching của Python 3.14.
- Thực hiện kiểm thử theo
testing_guide.md.