Mục tiêu nghiên cứu Từ những dữ liệu thu thập được từ website Báo Tuổi Trẻ, nhóm em sẽ phântích dữ liệu đó một cách chi tiết như tác giả, nội dung, tiêu đề, ngày đăng… từ đótìm ra xu hướ
CƠ SỞ NGHIÊN CỨU
Giới thiệu về Python trong phân tích dữ liệu
2.1.1 Python trong phân tích dữ liệu
Python là một ngôn ngữ lập trình lý tưởng cho mọi giai đoạn phân tích dữ liệu nhờ vào các thư viện chuyên dụng cho khoa học dữ liệu Các ứng dụng phổ biến của Python trong phân tích dữ liệu bao gồm khai thác dữ liệu, xử lý dữ liệu và mô hình hóa – trực quan hóa dữ liệu.
Cộng đồng lớn và các nhóm hỗ trợ là yếu tố quan trọng giúp các nhà phát triển Python tìm ra giải pháp nhanh chóng Sự phổ biến của Python trong nhiều lĩnh vực công nghệ thông tin đã tạo ra một mạng lưới kết nối mạnh mẽ giữa các lập trình viên Khi gặp khó khăn, họ có thể dễ dàng nhận được sự trợ giúp từ cộng đồng, từ đó giải quyết vấn đề một cách hiệu quả.
Python là ngôn ngữ lập trình dễ học nhất với cú pháp rõ ràng và dễ đọc, giúp người học nhanh chóng tiếp cận và thực hiện các dự án phân tích dữ liệu Số lượng dòng mã ít hơn và tốc độ phát triển nhanh là những lợi thế nổi bật của Python, cho phép nhà phát triển dễ dàng viết mã và gỡ lỗi.
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
Python là một ngôn ngữ lập trình linh hoạt và dễ mở rộng, cho phép ứng dụng trong nhiều lĩnh vực khác nhau Nhờ vào tính linh hoạt cao, Python hoạt động nhanh hơn và có thể tích hợp dễ dàng với các công cụ phát triển ứng dụng nhanh.
Các thư viện miễn phí đang ngày càng trở nên phổ biến và giúp giảm chi phí phân tích dữ liệu Nhờ sự hỗ trợ mạnh mẽ từ Python, các thư viện này không ngừng phát triển và cập nhật nhiều tính năng cần thiết, tạo điều kiện thuận lợi cho việc làm việc với dữ liệu.
Python là một ngôn ngữ lập trình thông dịch, điều này khiến nó chậm hơn so với một số ngôn ngữ khác Tuy nhiên, vấn đề tốc độ chỉ trở thành mối quan tâm nếu dự án của bạn yêu cầu hiệu suất cao.
Mức tiêu thụ bộ nhớ của Python khá cao, điều này khiến nó không phải là lựa chọn tối ưu cho các tác vụ yêu cầu sử dụng nhiều bộ nhớ Khi có một số lượng lớn đối tượng hoạt động trong RAM, Python có thể gặp phải vấn đề về hiệu suất.
Python không phải là ngôn ngữ lập trình được phát triển cho môi trường di động, và nhiều lập trình viên coi nó là ngôn ngữ yếu cho điện toán di động Hệ điều hành Android và iOS không công nhận Python là ngôn ngữ lập trình chính thức.
PyCharm là một IDE (Môi trường phát triển tích hợp) do JetBrains phát triển, chuyên dụng cho lập trình Python Nhiều ứng dụng lớn như Twitter, Facebook, Amazon và Pinterest đã lựa chọn PyCharm làm công cụ phát triển Python của họ.
- Tăng hiệu quả phát triển
- Hỗ trợ Frameworks và công nghệ
- Hỗ trợ đa nền tảng
Một số thư viện trong phân tích dữ liệu
Beautifulsoup là thư viện Python hỗ trợ phân tích cú pháp HTML và XML, giúp đơn giản hóa quá trình trích xuất thông tin từ các trang web.
Thư viện này cung cấp các công cụ hữu ích cho việc điều hướng, tìm kiếm và trích xuất dữ liệu từ cấu trúc HTML hoặc XML, giúp bạn dễ dàng tìm kiếm các thẻ HTML.
Xây dựng website để crawl dữ liệu tin tức mới nhất từ Báo Tuổi Trẻ giúp bạn tìm kiếm các thuộc tính của các thẻ, truy cập nội dung bên trong và tìm kiếm các đoạn văn bản cụ thể trong tài liệu một cách hiệu quả.
Sử dụng BeautifulSoup, bạn có thể dễ dàng trích xuất dữ liệu từ các trang web và lưu trữ dưới nhiều định dạng như CSV, Excel, JSON hoặc cơ sở dữ liệu SQL, phục vụ cho việc phân tích dữ liệu hoặc phát triển ứng dụng Điểm nổi bật của BeautifulSoup là tính linh hoạt, cho phép phân tích cú pháp hầu hết các ngôn ngữ đánh dấu, không chỉ giới hạn ở HTML và XML.
Các tính năng chính của thư viện Beautifulsoup:
- Parse HTML: Cho phép bạn phân tích dữ liệu HTML từ các trang web và trích xuất thông tin cần thiết.
- Navigation trong Cây HTML: Cung cấp các phương thức để điều hướng qua cây DOM HTML, tìm kiếm và trích xuất dữ liệu từ các phần tử HTML.
- Tìm Kiếm Dữ Liệu: Cho phép bạn tìm kiếm các phần tử HTML theo các tiêu chí như tên, class, id, v.v.
- Trích Xuất Dữ Liệu: Hỗ trợ trích xuất nội dung văn bản, liên kết, hình ảnh và các dữ liệu khác từ các trang web.
Requests là thư viện HTTP cho Python, cho phép gửi yêu cầu HTTP và nhận phản hồi từ các trang web Đây là công cụ thiết yếu để tương tác với các trang web trong Python, có khả năng xử lý nhiều định dạng dữ liệu khác nhau như chuỗi thời gian, bảng không đồng nhất và ma trận dữ liệu.
Các tính năng chính của thư viện Requests:
- Gửi Yêu Cầu HTTP: Cho phép bạn gửi các loại yêu cầu HTTP như GET, POST, PUT, DELETE, v.v đến các trang web.
- Xử Lý Phản Hồi: Nhận và xử lý phản hồi từ trang web, bao gồm nội dung HTML, dữ liệu JSON, v.v.
- Xử Lý Headers và Cookies: Cho phép bạn thêm headers và cookies vào yêu cầu HTTP của bạn.
- Xử Lý Phiên và Authencation: Hỗ trợ xử lý phiên (session) và xác thực (authentication) cho các yêu cầu HTTP.
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
Flask là một framework web nhẹ cho Python, lý tưởng cho việc phát triển ứng dụng web từ nhỏ đến trung bình Với thiết kế linh hoạt và dễ sử dụng, Flask giúp lập trình viên xây dựng các ứng dụng web một cách nhanh chóng và dễ dàng bảo trì.
Một số điểm nổi bật của Flask:
- Lightweight: Flask là một framework nhẹ, không yêu cầu các thư viện hoặc công cụ bổ sung nhiều.
Flask là một microframework, nghĩa là nó cung cấp những công cụ cơ bản cần thiết để phát triển ứng dụng web Mặc dù ban đầu chỉ có chức năng hạn chế, nhưng Flask cho phép mở rộng thông qua các plugin, giúp tăng cường khả năng và tính năng của ứng dụng.
Flask cung cấp một hệ thống định tuyến đơn giản và dễ sử dụng, cho phép bạn định nghĩa các định tuyến cho ứng dụng thông qua việc sử dụng decorators.
Flask tích hợp một trình cấp template mạnh mẽ, giúp bạn dễ dàng tạo ra các trang web động bằng cách kết hợp dữ liệu Python với các template HTML.
Flask cung cấp một máy chủ phát triển tích hợp, giúp bạn dễ dàng triển khai và kiểm tra ứng dụng trong quá trình phát triển.
Flask sở hữu một hệ thống mở rộng mạnh mẽ, cho phép người dùng dễ dàng tích hợp nhiều tính năng như xác thực, quản lý cơ sở dữ liệu, gửi email và nhiều chức năng khác thông qua các extension Một trong những thư viện phổ biến được hỗ trợ là SQLite3, giúp quản lý dữ liệu một cách hiệu quả và đơn giản.
Thư viện SQLite3 trong Python cung cấp giao diện dễ sử dụng cho việc tương tác với cơ sở dữ liệu SQLite, một hệ quản trị cơ sở dữ liệu nhẹ và phổ biến được tích hợp sẵn trong Python.
- Giao diện dễ sử dụng: SQLite3 cung cấp các lớp và phương thức để tương tác với cơ sở dữ liệu SQLite một cách dễ dàng từ Python.
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
- Không cần cài đặt bổ sung: SQLite là một phần của thư viện chuẩn của Python, vì vậy không cần cài đặt bổ sung nào.
SQLite hỗ trợ đầy đủ các phương pháp SQL, cho phép bạn sử dụng các câu lệnh SQL tiêu chuẩn để thực hiện truy vấn và cập nhật dữ liệu trong cơ sở dữ liệu.
SQLite là một giải pháp lý tưởng cho các ứng dụng di động và desktop nhỏ nhờ tính tương thích cao trên nhiều nền tảng mà không cần máy chủ riêng biệt.
SQLite là một hệ quản trị cơ sở dữ liệu nhẹ, hỗ trợ nhiều kiểu dữ liệu phổ biến, giúp người dùng dễ dàng tạo bảng, chỉnh sửa cấu trúc và thực hiện các thao tác thêm hoặc xóa dữ liệu.
Các phần mềm đã sử dụng
Selenium là một công cụ tự động hóa trình duyệt web phổ biến, được sử dụng rộng rãi cho kiểm thử tự động và tự động hóa các tác vụ trên trang web, giúp thực hiện các nhiệm vụ liên quan đến trình duyệt một cách hiệu quả và nhanh chóng.
Hình 8: Công cụ SQLite Studio
SQLite là một hệ thống quản lý cơ sở dữ liệu (DBMS) tương tự như MySQL và PostgreSQL, nổi bật với tính năng không cần máy chủ và cấu hình phức tạp Phần mềm này nhanh chóng, gọn nhẹ, và hoạt động độc lập, đồng thời đảm bảo độ tin cậy cao SQLite hỗ trợ hầu hết các tính năng cần thiết theo tiêu chuẩn SQL92, làm cho nó trở thành lựa chọn lý tưởng cho nhiều ứng dụng.
SQLite Database lưu trữ dữ liệu trong một file duy nhất và không có khái niệm về người dùng, mật khẩu hay quyền hạn Mặc dù không phù hợp cho các hệ thống lớn, SQLite tỏ ra mạnh mẽ và hiệu quả trong các ứng dụng quy mô vừa, không hề kém cạnh về chức năng hay tốc độ.
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
Visual Studio Code, hay VS Code, là một ứng dụng mạnh mẽ cho phép biên tập và soạn thảo mã nguồn, hỗ trợ nhanh chóng trong quá trình xây dựng và thiết kế website Trình soạn thảo này hoạt động mượt mà trên các hệ điều hành như Windows, macOS và Linux, mang lại trải nghiệm lập trình tối ưu cho người dùng.
VS Code còn cho khả năng tương thích với những thiết bị máy tính có cấu hình tầm trung vẫn có thể sử dụng dễ dàng.
Visual Studio Code là một trình soạn thảo mã nguồn mạnh mẽ với nhiều chức năng Debug, tích hợp Git và hỗ trợ Syntax Highlighting Nó nổi bật với tính năng tự hoàn thành mã thông minh, Snippets và khả năng cải tiến mã nguồn Đặc biệt, Visual Studio Code cho phép lập trình viên tùy chỉnh Theme, phím tắt và nhiều tùy chọn khác, mặc dù có kích thước nhẹ nhưng vẫn mang lại hiệu suất cao.
Mặc dù mới ra mắt, VSCode đã nhanh chóng trở thành một trong những trình soạn thảo mã phổ biến nhất nhờ tích hợp đầy đủ tính năng và khả năng mở rộng, khiến nó trở nên quen thuộc với mọi lập trình viên.
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
PHÂN TÍCH - THIẾT KẾ HỆ THỐNG
Mô tả dữ liệu đã thu thập
- Bảng dữ liệu của chitiet_tintuc
STT Tên Kiểu dữ liệu Mô tả
1 id_chitiet INTERGER Mã chi tiết bài báo
2 loaichude TEXT Loại chủ đề
3 thoigian TEXT Thời gian đăng bài báo
4 tieude TEXT Tiêu đề bài báo
5 hinhanh TEXT Ảnh bìa bài báo
6 noidung TEXT Nội dung bài báo
7 tacgia TEXT Tác giả của bài báo
Bảng 2: Bảng dữ liệu của chitiet_tintuc
- Bảng dữ liệu của tintuc
STT Tên Kiểu dữ liệu Mô tả
1 id INTERGER Mã bài báo
2 tieude TEXT Tiêu đề bài báo
4 thoigian TEXT Thời gian đăng bài báo
5 noidung TEXT Nội dung bài báo
6 diachi TEXT Địa chỉ nguồn của bài báo
Sơ đồ thiết kế
- Sơ đồ USER CASE tổng quát
Hình 10: Sơ đồ USER CASE tổng quát
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
- Sơ đồ USER CASE chi tiết
Hình 11: Sơ đồ USER CASE chi tiết
Sơ đồ triển khai
Hình 12: Sơ đồ triển khai
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
TRIỂN KHAI HỆ THỐNG
Kịch bản triển khai thử nghiệm hệ thống
Truy cập vào trang index.html để kiểm tra chức năng tìm kiếm theo từ khóa, sau đó kiểm tra chức năng xem chi tiết và chức năng xem tin tức trên trang gốc Tiếp theo, tiến hành kiểm tra chức năng lọc tin tức theo chủ đề Cuối cùng, hoàn thành quá trình kiểm thử.
Quá trình thực hành kịch bản
Chạy file craw.py để lấy thông tin toàn bộ các tin tức mới nhất:
Hình 13: Khởi chạy file craw.py
Hình 14: Lấy thông tin tin tức mới từ wedsite Báo Tuổi Trẻ
Chạy file craw_chitiettin.py để lấy toàn bộ thông tin về tin tức:
Hình 15: Chạy file craw_chitiettin.py để lấy toàn bộ thông tin về tin tức
Chạy file main.py, Ctr + click vào đừng link từ output của chương trình để vào trang web crawl dữ liệu:
Hình 16: Khởi chạy file main.py
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
Kiểm tra chức năng tìm kiếm:
Hình 18: Kiểm tra chức năng tìm kiếm (1)
Hình 19: Kiểm tra chức năng tìm kiếm (2)
Kiểm tra chức năng xem chi tiết:
Hình 20: Kiểm tra chức năng xem chi tiết
Kiểm tra chức năng xem tin tức trên trang gốc:
Hình 21: Kiểm tra chức năng xem tin tức trên trang gốc (1)
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ
Hình 22: Kiểm tra chức năng xem tin tức trên trang gốc (2)
Kiểm tra chức năng lọc tin tức theo chủ đề:
Hình 23: Kiểm tra chức năng lọc tin tức theo chủ đề (1)
Hình 24: Kiểm tra chức năng lọc tin tức theo chủ đề (2)
Sau khi kiểm tra, tất cả các chức năng đều đáp ứng đầy đủ yêu cầu của bài toán Chương trình có khả năng crawl thông tin từ trang báo Tuổi Trẻ mà không gặp phải lỗi nào trong quá trình thử nghiệm.
Đánh giá kết quả triển khai kịch bản
Crawl dữ liệu là phương pháp tiết kiệm thời gian và công sức, cho phép tự động thu thập một lượng lớn thông tin và dữ liệu cần thiết mà không cần thực hiện thủ công Nhờ đó, công việc của người xây dựng web được giảm bớt đáng kể.
Dữ liệu đã được thu thập cho phép việc so sánh và phân tích trở nên đơn giản hơn, giúp bạn phát hiện các xu hướng, thống kê và thông tin giá trị từ nguồn dữ liệu này.
- Nếu cấu trúc của trang web thay đổi, quá trình crawl có thể gặp khó khăn và không thu thập được dữ liệu đúng.
XÂY DỰNG WEBSITE CRAWL DỮ LIỆU TIN MỚI NHẤT TỪ BÁO TUỔI TRẺ