1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo cuối kỳ môn kỹ thuật lập trình trong phân tích dữ liệu crawl dữ liệu, load và tìm kiếm trên website baotintuc vn, nld com vn

13 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 đề Báo Cáo Cuối Kỳ Môn Kỹ Thuật Lập Trình Trong Phân Tích Dữ Liệu Crawl Dữ Liệu, Load Và Tìm Kiếm Trên Website Baotintuc.vn, Nld.com.vn
Tác giả Trần Đăng Đức, Phạm Văn Sơn, Lê Anh Tài
Người hướng dẫn ThS. Nguyễn Thế Bảo
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
Thể loại báo cáo
Năm xuất bản 2024
Thành phố Bình Dương
Định dạng
Số trang 13
Dung lượng 1,52 MB

Nội dung

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘTVIỆN KỸ THUẬT – CÔNG NGHỆ BÁO CÁO CUỐI KỲ MÔN KỸ THUẬT LẬP TRÌNH TRONG PHÂN TÍCH DỮ LIỆU CRAWL DỮ LIỆU, LOAD VÀ TÌM KIẾM TRÊN WEBSITE BAOTINTUC.VN, NLD.COM.VN G

Trang 1

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘT

VIỆN KỸ THUẬT – CÔNG NGHỆ

BÁO CÁO CUỐI KỲ MÔN KỸ THUẬT LẬP TRÌNH TRONG PHÂN TÍCH DỮ LIỆU

CRAWL DỮ LIỆU, LOAD VÀ TÌM KIẾM TRÊN WEBSITE

BAOTINTUC.VN, NLD.COM.VN

Giảng Viên Hướng Dẫn: ThS Nguyễn Thế Bảo

Lớp : KTCN.CQ05

Bình Dương, tháng 05 năm 2024

Trang 2

CHƯƠNG 1 TỔNG QUAN (1đ) 1

1.1 Giới thiệu tổng quan đề tài 1

a Request và Beautifulsoup 3

b Newspaper3K 3

c Flask-SqlAlchemy 3

CHƯƠNG 2 THU THẬP DỮ LIỆU VÀ XÂY DỰNG HỆ THỐNG (6.5đ) 5

1.Mô tả dữ liệu đã thu thập 5

1.2 Phương pháp thu thập: 5

1.3 Khối lượng dữ liệu: 5

2 Xây dựng hệ thống tìm kiếm 6

a Tìm kiếm theo từ khóa 6

b Sắp xếp kết quả tìm kiếm (nếu có) 6

c Xây dựng giao diện hệ thống tìm kiếm 6

CHƯƠNG 3 KẾT LUẬN (0.5đ) 9

1 Kết quả đã làm được 9

2 Hạn chế (chưa làm được) 9

3 Thuận lợi và khó khăn 10

a Thuận lợi 10

b Khó khăn 10

DANH MỤC TÀI LIỆU THAM KHẢO 11

Trang 3

DANH MỤC CÁC BẢNG, SƠ ĐỒ, HÌNH

Hình 1 Logo Python 3

Hình 2 Giao diện sql craw 7

Hình 3 Giao diện menu 7

Hình 4 Giao diện trang chủ 8

Hình 5 Giao diện danh mục các bài báo 8

Hình 6 Giao diện chi tiết bài báo 9

LỜI MỞ ĐẦU

Ngày nay, công nghệ thông tin phát triển mạnh mẽ và được ứng dụng rộng rãi trong mọi lĩnh vực Việc tìm kiếm và phân tích dữ liệu trở nên quan trọng hơn bao giờ hết, các trang tin tức điện tử là nguồn cung cấp thông tin chính thống và phong phú Phân tích dữ liệu website tin tức giúp chúng ta có thể nắm bắt được xu hướng

xã hội, đánh giá hiệu quả hoạt động của website

Với kiến thức học được trong học phần "Kỹ thuật lập trình trong phân tích dữ

liệu" giúp em có thể thực hiện đề tài “Crawl dữ liệu, load và tìm kiếm trên website baotintuc.vn, nld.com.vn” Việc thu thập và phân tích dữ liệu từ các trang

web tin tức điện tử như baotintuc có thể mang lại nhiều lợi ích cho việc nghiên cứu

và phân tích dữ liệu, đặc biệt là trong lĩnh vực báo chí, truyền thông và khoa học xã hội

CHƯƠNG 1 TỔNG QUAN (1đ)

1.1 Giới thiệu tổng quan đề tài

Đề tài “Crawl dữ liệu, load và tìm kiếm trên website baotintuc.vn, nld.com.vn” này tập trung vào việc crawl dữ liệu từ trang web baotintuc.vn, nld.com.vn, load vào hệ thống và thực hiện tìm kiếm trên dữ liệu thu thập được.

Trong quá trình nghiên cứu, nhóm thực hiện sẽ sử dụng các phương pháp crawl dữ liệu như Request và Beautiful Soup, cũng như thư viện

Trang 4

flask-mysql.connector để thu thập tin tức từ trang web baotintuc.vn, nld.com.vn Sau

đó, sẽ load dữ liệu thu thập được vào cơ sở dữ liệu sử dụng flask- mysql.connector

để lưu trữ và quản lý Cuối cùng, sẽ phát triển một hệ thống tìm kiếm đơn giản để người dùng có thể truy vấn và tìm kiếm thông tin trên dữ liệu đã thu thập

Mục tiêu đề tài:

 Xây dựng hệ thống tự động thu thập tin tức từ trang web flask-mysql.connector để phục vụ cho việc nghiên cứu và phân tích dữ liệu

 Phát triển hệ thống tìm kiếm đơn giản để người dùng truy vấn và tìm kiếm thông tin trên dữ liệu đã thu thập

Phạm vi đề tài:

 Thu thập tin tức từ các chuyên mục chính trên baotintuc.vn, nld.com.vn flask- mysql.connector (Chính trị, Kinh tế, Xã hội, v.v.).

 Lưu trữ dữ liệu thu thập được trong cơ sở dữ liệu quan hệ

 Phát triển giao diện người dùng đơn giản để truy vấn và tìm kiếm dữ liệu

 Đánh giá hiệu quả của hệ thống về tốc độ thu thập dữ liệu, độ chính xác của dữ liệu và hiệu quả tìm kiếm

Tổng quan Python

Python là ngôn ngữ lập trình bậc cao được sử dụng phổ biến trong nhiều lĩnh vực như khoa học dữ liệu, trí tuệ nhân tạo, phát triển web, v.v Python được ưa chuộng bởi tính dễ học, dễ sử dụng, có cộng đồng người dùng lớn và nhiều thư viện

hỗ trợ đa dạng, được phát triển bởi Guido van Rossum vào năm 1989

Python là một ngôn ngữ lập trình đa năng và mạnh mẽ , là một ngôn ngữ bậc cao như C, C++, Java, cho nên có thể được dùng để tạo ra các ứng dụng để giải quyết các vấn đề về số, xử lý văn bản, tạo ra trò chơi, và nhiều thứ khác

Có các môi trường lập trình như: IDLE (Integrated Development and Learning Environment), Visual Studio Code (VSCode), PyCharm

Có khả năng truy cập dữ liệu từ xa thông qua cầu nối API, Database Connectivity

Hỗ trợ các lớp hữu ích, tiện lợi trong lập trình các ứng dụng mạng (Socket) cũng như truy xuất Web thông qua các thư viện Socket Programming

Trang 5

Hỗ trợ lập trình phân tán (Remote Method Invocation) cho phép một ứng dụng

có thể được xử lý phân tán trên các máy tính khác nhau qua thư viện RPC (Remote Procedure Call), Celery

Nó có khả năng diễn giải mã nguồn từng dòng, thư viện mở rộng của các gói

mã nguồn mở, độc lập với nền tảng, khả năng biểu đạt, khả năng mở rộng và khả năng nhúng, làm cho nó trở thành lựa chọn lý tưởng cho nhiều dự án phát triển Python thường được sử dụng để phát triển các trang web và phần mềm, tự động hóa các tác vụ, phân tích dữ liệu và trực quan hóa dữ liệu

Ưu điểm của Python:

 Dễ học, dễ đọc, dễ viết

 Miễn phí và mã nguồn mở

 Có cộng đồng người dùng lớn và nhiều thư viện hỗ trợ đa dạng

 Phù hợp cho nhiều lĩnh vực khác nhau

Hình 1 Logo Python

Tổng quan về thu thập dữ liệu

Thu nhập dữ liệu là quá trình thu thập thông tin từ các nguồn khác nhau để phục vụ cho mục đích nghiên cứu, phân tích hoặc sử dụng trong các ứng dụng Dữ liệu có thể được thu thập từ nhiều nguồn khác nhau, bao gồm:

Trang web: Sử dụng các công cụ như Beautiful Soup, Scrapy để trích xuất dữ

liệu từ trang web

API: Truy cập các API để lấy dữ liệu từ các dịch vụ trực tuyến.

Cảm biến: Thu thập dữ liệu từ các thiết bị cảm biến.

Khảo sát: Thu thập dữ liệu từ người dùng thông qua các cuộc khảo sát.

Trang 6

Phỏng vấn: Thu thập dữ liệu từ người dùng thông qua các cuộc phỏng vấn.

Có nhiều công cụ và kỹ thuật khác nhau có thể được sử dụng để thu nhập dữ liệu Lựa chọn công cụ và kỹ thuật phù hợp sẽ phụ thuộc vào nguồn dữ liệu, định dạng dữ liệu và mục đích thu thập dữ liệu

a Request và Beautifulsoup

Request là một thư viện Python cho phép tương tác với các trang web bằng cách gửi HTTP requests và nhận HTTP responses Beautiful Soup là một thư viện Python để trích xuất dữ liệu từ các tài liệu HTML và XML Chúng ta sẽ sử dụng

Request để tải HTML từ trang web Vietnamnet, sau đó sử dụng Beautiful Soup để

phân tích cú pháp và trích xuất dữ liệu

b Newspaper3K

Newspaper3K là một thư viện Python được thiết kế để extract và phân tích tin tức từ các trang web Thư viện này cung cấp các công cụ để thu thập và phân tích nội dung bài báo từ các URL đã cho Chúng ta có thể sử dụng Newspaper3K để thu thập dữ liệu từ các bài báo trên Vietnamnet

c Flask- mysql.connector

Flask là một micro framework viết bằng Python, được thiết kế để giúp việc phát triển ứng dụng web trở nên dễ dàng và nhanh chóng Flask rất linh hoạt và cho phép bạn tự do cấu trúc dự án của mình theo cách mà bạn muốn, mà không bị ràng buộc bởi các quy ước nghiêm ngặt

MySQL Connector là một thư viện PWython được cung cấp bởi MySQL để kết nối và tương tác với cơ sở dữ liệu MySQL Nó cung cấp một API để thực hiện các thao tác như truy vấn, chèn, cập nhật và xóa dữ liệu từ cơ sở dữ liệu MySQL

Khi kết hợp Flask và MySQL Connector, bạn có thể xây dựng các ứng dụng web có khả năng tương tác với cơ sở dữ liệu MySQL Dưới đây là một ví dụ đơn giản về cách sử dụng Flask và MySQL Connector để kết nối và làm việc với cơ sở

dữ liệu MySQL

Trang 7

P a g e | 7

CHƯƠNG 2 THU THẬP DỮ LIỆU VÀ XÂY DỰNG HỆ THỐNG (6.5đ)

1.Mô tả dữ liệu đã thu thập

Trước hết, bạn cần quyết định dữ liệu nào bạn muốn thu thập từ trang web

baotintuc.vn, nld.com.vn Điều này có thể bao gồm các thành phần như:

Tiêu đề bài báo

Nội dung bài báo

Thời gian đăng bài

Tác giả

Thể loại bài báo

Sau khi xác định được dữ liệu cần thu thập, bạn có thể sử dụng các kỹ thuật

như web scraping để tự động thu thập dữ liệu từ trang web baotintuc.vn, nld.com.vn Đảm bảo rằng bạn tuân thủ các quy định về robots.txt và chính sách

của trang web để tránh vi phạm quyền sở hữu trí tuệ hoặc các quy định khác

1.2 Ph ươ ng pháp thu th p: ậ

Cào web: Sử dụng các thư viện/công cụ như Beautiful Soup (Python),

Scrapy (Python), Go Scrapy (Go), v.v để thu thập dữ liệu từ website

baotintuc.vn, nld.com.vn.

Lưu trữ dữ liệu: Lưu trữ dữ liệu đã thu thập vào cơ sở dữ liệu (MySQL,

MongoDB, Elasticsearch, v.v.)

1.3 Kh i l ố ượ ng d li u: ữ ệ

Số lượng bài báo: Tùy thuộc vào phạm vi thu thập (toàn bộ website hoặc

một số chuyên mục nhất định) và thời gian thu thập

Dung lượng dữ liệu: Tùy thuộc vào nội dung của bài báo (hình ảnh, video,

v.v.)

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Trang 8

P a g e | 8

2 Xây dựng hệ thống tìm kiếm

a Tìm kiếm theo từ khóa

Phân tích từ khóa:

Xử lý tiền xử lý văn bản: Loại bỏ dấu chấm câu, chuyển đổi chữ hoa sang chữ thường, chia nhỏ văn bản thành các từ khóa

Loại bỏ từ khóa dừng (stop words): Các từ khóa phổ biến không mang nhiều ý nghĩa như "tôi", "của", "và", v.v

Tạo danh mục từ khóa đồng nghĩa: Từ khóa có nghĩa tương tự nhau

Tìm kiếm trong cơ sở dữ liệu:

Sử dụng truy vấn full-text search (tìm kiếm toàn văn bản) để tìm kiếm các bài báo có chứa từ khóa

Có thể sử dụng các thuật toán xếp hạng để tăng độ chính xác của kết quả tìm kiếm (BM25, TF-IDF, v.v.)

b Sắp xếp kết quả tìm kiếm (nếu có)

Theo độ liên quan: Sắp xếp các bài báo có chứa từ khóa tìm kiếm nhiều nhất ở đầu danh sách

Theo thời gian: Sắp xếp các bài báo mới nhất trước các bài báo cũ hơn

Theo lượt xem: Sắp xếp các bài báo được xem nhiều nhất trước các bài báo ít được xem hơn

Theo đánh giá: Sắp xếp các bài báo có đánh giá cao nhất trước các bài báo có đánh giá thấp hơn

c Xây dựng giao diện hệ thống tìm kiếm

Giao diện sql craw :

Hình 2 Giao diện sql craw

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Trang 9

P a g e | 9

Giao diện menu :

Hình 3 Giao diện menu

Giao diện người dùng (UI) đơn giản, dễ sử dụng

Hiển thị danh mục menu để chọn

Giao diện trang chủ :

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Trang 10

P a g e | 10

Hình 4 Giao diện trang chủ

Sau khi nhập nội dung tìm kiếm vào thanh tìm kiếm thì sẽ hiển thị ra nội dung bài báo như sau :

Hình 5 Giao diện danh mục các bài báo

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Trang 11

P a g e | 11

Giao diện chi tiết bài báo :

Hình 6 Giao diện chi tiết bài báo

CHƯƠNG 3 KẾT LUẬN (0.5đ)

1 Kết quả đã làm được

Đã thu thập dữ liệu từ website baotintuc.vn, nld.com.vn bao gồm tiêu đề,

tóm tắt, nội dung, hình ảnh, tác giả, v.v

Đã xây dựng hệ thống tìm kiếm cho phép người dùng tìm kiếm các bài báo theo từ khóa, và sắp xếp kết quả tìm kiếm

Đã triển khai giao diện người dùng đơn giản, dễ sử dụng

Đã thử nghiệm hệ thống và đạt được kết quả khả quan

2 Hạn chế (chưa làm được)

Chưa tích hợp các tính năng nâng cao như tìm kiếm theo thời gian,

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Trang 12

P a g e | 12

Chưa tối ưu hóa hiệu suất hệ thống để tiết kiệm tài nguyên máy chủ

Chưa cập nhật dữ liệu mới thường xuyên để đảm bảo kết quả tìm kiếm chính xác

Chưa triển khai các tính năng nâng cao như tìm kiếm theo ngữ cảnh, đề xuất bài báo liên quan, v.v

3 Thuận lợi và khó khăn

a Thuận lợi

Có sẵn nhiều nguồn dữ liệu miễn phí trên website baotintuc.vn, nld.com.vn

Có nhiều thư viện/công cụ hỗ trợ thu thập và xử lý dữ liệu

Có nhiều tài liệu hướng dẫn và cộng đồng hỗ trợ phát triển hệ thống tìm kiếm

b Khó khăn

Đối mặt với các rào cản pháp lý và chính sách của trang web baotintuc.vn, nld.com.vn khi thu thập dữ liệu.

Phải xử lý dữ liệu không chuẩn, bị lỗi hoặc không đồng nhất từ trang web Đòi hỏi kiến thức vững về lập trình và quản lý cơ sở dữ liệu để triển khai hệ thống một cách hiệu quả

Khó khăn trong việc xử lý các định dạng dữ liệu khác nhau (hình ảnh, video, v.v.)

Cần đảm bảo hệ thống tìm kiếm có khả năng xử lý lượng truy cập lớn và trả

về kết quả tìm kiếm nhanh chóng

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Trang 13

P a g e | 13

DANH MỤC TÀI LIỆU THAM KHẢO

1 Website báo baotintuc.vn <https://www baotintuc vn/ >

2 Website báo nld.com.vn <https://www nld.com vn/ >

3 O’reilly Natural Language Processing with Python.

4 VIBLO Tf-idf algorithm, Text retrieval and Search engines <

https://viblo.asia/p/tf-idf-algorithm-text-retrieval-and-search-engines-1Je5EmGY5nL?

fbclid=IwAR1IQi8VR3IADY8J7aDYK6Vp4q4tX2l8SATfFlRrCPxVFKs-JJCT1ZrI3h4>

5 Thor Pham Blog Sentiment Analysis sử dụng Tf-Idf áp dụng cho ngôn ngữ

tiếng việt < https://thorpham.github.io/blog/2018/04/14/setmentation/>

6 Kartheek Akella Implementing the TF-IDF Search Engine

Thu Thập Và Xử Lý Dữ Liệu Từ Website Báo VnExpress

Ngày đăng: 13/12/2024, 23:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w