1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ

39 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Website Crawl Dữ Liệu Tin Mới Nhất Từ Báo Tuổi Trẻ
Tác giả Đoàn Gia Bảo, Tạ Trung Hậu, Phan Ngọc Tùng
Người hướng dẫn Nguyễn Thị Hồng
Trường học Trường Đại Học Thủ Dầu Một
Chuyên ngành Kỹ Thuật Lập Trình Trong Phân Tích Dữ Liệu
Thể loại báo cáo tiểu luận
Năm xuất bản 2024
Thành phố Bình Dương
Định dạng
Số trang 39
Dung lượng 6,18 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI (13)
    • 1.1. Tên đề tài (13)
    • 1.2. Lý do chọn đề tài (13)
    • 1.3. Mục tiêu nghiên cứu (13)
    • 1.4. Đối tượng, phạm vi nghiên cứu, cách tiếp cận và phương pháp nghiên cứu (14)
      • 1.4.1. Đối tượng (14)
      • 1.4.2. Phạm vi nghiên cứu (14)
      • 1.4.3. Cách tiếp cận (14)
      • 1.4.4. Phương pháp nghiên cứu (15)
  • CHƯƠNG 2: CƠ SỞ NGHIÊN CỨU (16)
    • 2.1. Giới thiệu về Python trong phân tích dữ liệu (16)
      • 2.1.1. Python trong phân tích dữ liệu (16)
      • 2.1.2. PyCharm (17)
    • 2.2. Một số thư viện trong phân tích dữ liệu (18)
      • 2.2.1. Thư viện Beautifulsoup (18)
      • 2.2.2. Thư viện Requests (19)
      • 2.2.3. Thư viện Flask (21)
      • 2.2.4. Thư viện SQLite3 (22)
    • 2.3. Các phần mềm đã sử dụng (23)
      • 2.3.2. Công cụ SQLite Studio (24)
      • 2.3.3. Visual Studio Code (25)
  • CHƯƠNG 3: PHÂN TÍCH - THIẾT KẾ HỆ THỐNG (27)
    • 3.1. Mô tả dữ liệu đã thu thập (27)
    • 3.2. Sơ đồ thiết kế (28)
    • 3.3. Sơ đồ triển khai (30)
  • CHƯƠNG 4: TRIỂN KHAI HỆ THỐNG (31)
    • 4.1. Kịch bản triển khai thử nghiệm hệ thống (31)
    • 4.2. Quá trình thực hành kịch bản (31)
    • 4.3. Đánh giá kết quả triển khai kịch bản (36)
      • 4.3.1. Ưu điểm (36)
      • 4.3.2. Hạn chế (36)
  • CHƯƠNG 5: KẾT LUẬN (37)
    • 5.1. Kết quả đạt được (37)
    • 5.2. Hướng phát triển của đề tài (37)
  • TÀI LIỆU THAM KHẢO (39)

Nội dung

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Ẻ

Ngày đăng: 15/01/2025, 21:53

HÌNH ẢNH LIÊN QUAN

BẢNG PHÂN CÔNG CÔNG VIỆC - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
BẢNG PHÂN CÔNG CÔNG VIỆC (Trang 12)
Hình 3: Thư viện Beautifulsoup - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 3 Thư viện Beautifulsoup (Trang 18)
Hình 5: Thư viện Flask - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 5 Thư viện Flask (Trang 21)
Hình 6: Thư viện SQLite3 - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 6 Thư viện SQLite3 (Trang 22)
Hình 9: Visual Studio Code - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 9 Visual Studio Code (Trang 25)
Bảng 2: Bảng dữ liệu của chitiet_tintuc - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Bảng 2 Bảng dữ liệu của chitiet_tintuc (Trang 27)
3.2. Sơ đồ thiết kế - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
3.2. Sơ đồ thiết kế (Trang 28)
Hình 11: Sơ đồ USER CASE chi tiết - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 11 Sơ đồ USER CASE chi tiết (Trang 29)
3.3. Sơ đồ triển khai - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
3.3. Sơ đồ triển khai (Trang 30)
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ẻ
Hình 16 Khởi chạy file main.py (Trang 32)
Hình 19: Kiểm tra chức năng tìm kiếm (2) - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 19 Kiểm tra chức năng tìm kiếm (2) (Trang 33)
Hình 18: Kiểm tra chức năng tìm kiếm (1) - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 18 Kiểm tra chức năng tìm kiếm (1) (Trang 33)
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 21 Kiểm tra chức năng xem tin tức trên trang gốc (1) (Trang 34)
Hình 22: Kiểm tra chức năng xem tin tức trên trang gốc (2) - 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) (Trang 35)
Hình 24: Kiểm tra chức năng lọc tin tức theo chủ đề (2) - Xây dựng website crawl dữ liệu tin mới nhất từ báo tuổi trẻ
Hình 24 Kiểm tra chức năng lọc tin tức theo chủ đề (2) (Trang 36)