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

BÁO CÁO THỰC TẬP TỐT NGHIỆP TÊN ĐỀ TÀI ỨNG DỤNG PYTHON TRONG VIỆC WEB SCRAPING TỰ ĐỘNG

56 4 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

Nội dung

MỤC LỤC DANH MỤC HÌNH ẢNH........................................................................... 1 LỜI MỞ ĐẦU.............................................................................................. 3 GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP.................................................... 4 CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI .................................. 6 1.1 Lý do chọn đề tài ................................................................................. 6 1.2 Mục tiêu của đề tài............................................................................... 7 1.3 Phạm vi nghiên cứu của đề tài............................................................. 7 1.3.1 Ngôn ngữ lập trình và công cụ...................................................... 7 1.3.2 Lĩnh vực và nguồn dữ liệu............................................................. 8 1.3.3 Thời gian nghiên cứu .................................................................... 8 1.3.4 Đối tượng và quy mô nghiên cứu .................................................. 8 1.3.5 Giới hạn nghiên cứu...................................................................... 9 CHƯƠNG 2: TỔNG QUAN VỀ WEB SCRAPING.............................. 10 2.1 Khái niệm và ứng dụng Web Scraping.............................................. 10 2.1.1 Khái niệm .................................................................................... 10 2.1.2 Ứng dụng..................................................................................... 10 2.2 Các phương pháp và kỹ thuật Web Scraping .................................... 11 2.2.1 Các phương pháp ........................................................................ 11 2.2.2 Kỹ thuật Web Scraping................................................................ 12 2.3 Những thách thức và rủi ro khi thực hiện.......................................... 12 2.3.1 Thách thức khi thực hiện Web Scraping ..................................... 12 2.3.2 Rủi ro pháp lý và đạo đức ........................................................... 13 CHƯƠNG 3: GIỚI THIỆU VỀ PYTHON VÀ CÁC THƯ VIỆN WEB SCRAPING................................................................................................ 14 3.1 Tổng quan về Python......................................................................... 14 8 3.1.1 Lịch sử hình thành....................................................................... 14 3.1.2 Một vài sự thật thú vị về Python.................................................. 15 3.1.3 Đặc tính của Python.................................................................... 16 3.1.4 Một số ứng dụng của Python ...................................................... 17 3.2 Lý do chọn Python cho việc Web Scraping ...................................... 19 3.3 Các thư viện phổ biến trong Web Scraping....................................... 20 3.3.1 BeautifulSoup .............................................................................. 20 3.3.2 Scrapy.......................................................................................... 21 3.3.3 Selenium ...................................................................................... 23 3.3.4 Request ........................................................................................ 25 3.3.5 Ưu và nhược điểm của từng thư viện .......................................... 26 CHƯƠNG 4: TRIỂN KHAI MÃ WEB SCRAPING BẰNG PYTHON ..................................................................................................................... 29 4.1 Chuẩn bị môi trường và công cụ ....................................................... 29 4.2 Thực hiện xây dựng chương trình code thử nghiệm ......................... 30 4.3 Cải tiến Code thử nghiệm thành Automation.................................... 33 4.4 Lưu trữ dữ liệu và xử lý các vấn đề thường gặp................................ 38 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN......................

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIA ĐỊNH KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO

THỰC TẬP TỐT NGHIỆP TÊN ĐỀ TÀI

ỨNG DỤNG PYTHON TRONG VIỆC WEB SCRAPING TỰ ĐỘNG

Giảng viên hướng dẫn: TRẦN HOÀI THUẬN Sinh viên thực hiện: NHỮ VĂN TIẾN

MSSV: 2108110287 Lớp: K15HTTT01 Khóa: 15

Thành phố Hồ Chí Minh, tháng 07 năm 2024

Trang 2

LỜI CẢM ƠN

Trong suốt quá trình thực tập tại công ty, em đã nhận được sự hỗ trợ và hướng dẫn nhiệt tình từ tất cả các anh chị trong công ty, đặc biệt là từ thầy Trần Hoài Thuận Nhờ có sự giúp đỡ, hỗ trợ nhiệt tình của thầy mà em đã có thể hoàn thành cuốn báo cáo thực tập này một cách trọn vẹn nhất Lời cuối cùng, em xin gửi lời cảm ơn chân thành nhất đến đơn vị thực tập và thầy hướng dẫn đã luôn tạo điều kiện thuận lợi, đồng hành và hỗ trợ em trong suốt thời gian qua Sự tận tụy và tâm huyết của quý vị đã để lại trong em những ấn tượng sâu sắc và niềm tin vững chắc vào con đường sự nghiệp phía trước

Trang 3

ĐÁNH GIÁ CỦA GIẢNG VIÊN HƯỚNG DẪN

1 Thái độ tác phong trong thời gian thực tập:

2 Kiến thức chuyên môn:

3 Nhận thức thực tế:

4 Đánh giá khác:

5 Đánh giá chung kết quả thực tập:

………, ngày ……… tháng ……… năm …………

Giảng viên hướng dẫn

(Ký tên, ghi rõ họ tên)

Trang 4

TRƯỜNG ĐẠI HỌC GIA ĐỊNH

KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự do – Hạnh phúc

BÁO CÁO THỰC TẬP TỐT NGHIỆP HÀNG TUẦN

Họ và tên SV: Nhữ Văn Tiến MSSV: 2108110287 Lớp: K15HTTT01

Giảng viên hướng dẫn: Trần Hoài Thuận

Tên doanh nghiệp (đơn vị) đến thực tập: Công Ty TNHH Tư Vấn Chiến Lược Chính Sách Và Phân Tích Dữ Liệu VietStats

Địa chỉ: Tầng 3, Block B, Tòa nhà Jamona Heights, 210 Bùi Văn Ba, Phường Tân Thuận Đông, Quận 7, TP Hồ Chí Minh

tại DN (Ký tên và ghi

rõ họ tên)

Nhận xét của giảng viên hướng dẫn (Ký tên và ghi

rõ họ tên)

1

Tuần 1 (Từ ngày 20/05 đến ngày 26/05)

- Tìm hiểu quy trình, cách thức làm việc

- Làm quen với các dạng báo cáo tình chính

2

Tuần 2 (Từ ngày 27/05 đến ngày 02/06)

- Nghiên cứu cách để web scraping thông qua việc phân tích cấu trúc trang HTML

3

Tuần 3 (Từ ngày 03/06 đến ngày 09/06)

- Xây dựng đoạn code Python cơ bản để làm quen với việc cào số liệu của các báo cáo tài chính (trên trang 24hMoney, cafef) về thành file excel theo một format chung thông qua thư viện BeautifulSoup

Trang 5

4

Tuần 4 (Từ ngày 10/06 đến ngày 16/06)

- Tiếp tục xây dựng đoạn code Python cơ bản để làm quen với việc tải các file báo cáo tài chính dạng pdf (trang vietstock) hoặc đưa ra các giải pháp khác tốt hơn thay vì tải thủ công từng file

5

Tuần 5 (Từ ngày 17/06 đến ngày 23/06)

- Kết hợp với thư viện Selenium để cải tiến code Python ở tuần thứ 3,4 lên automation để tự động cào số liệu báo cáo tài chính, tự động tải các file pdf theo danh sách các ngành, các công ty được cung cấp

6

Tuần 6 (Từ ngày 24/06 đến ngày 30/06)

- Thảo luận với leader team Data để tìm và đưa ra giải pháp tính toán tổng hợp tất cả số liệu của các công ty có chung ngành vào một file excel duy nhất thông qua các chỉ số tài chính (sử dụng Python)

7

Tuần 7 (Từ ngày 01/07 đến ngày 07/07)

- Kiểm tra tính đúng đắn của dữ liệu sau đó ghi chú lại các ngành, công ty, loại báo cáo tài chính nào bị lỗi hoặc bị thiếu hoặc không cào được

Trang 6

8

Tuần 8 (Từ ngày 08/07 đến ngày 14/07)

- Xây dựng code Python để tự động hóa đổi tên tất cả các file trong máy theo format đã thống nhất

- Tổ chức lưu trữ data một cách đồng nhất, khoa học để thuận tiện cho việc quản lý và truy xuất

9

Tuần 9 (Từ ngày 15/07 đến ngày 21/07)

- Tiếp tục thu thập số liệu dữ liệu,

file cho các lĩnh vực khác như dữ liệu ngân sách nhà nước, kinh tế việt nam, chỉ số sử dụng lao động,… (thuộc kinh tế vĩ mô)

10

Tuần 10 (Từ ngày 22/07 đến ngày 28/07)

- Tổng hợp dữ liệu theo format chuỗi thời gian và các yêu cầu khác theo chỉ định của CEO

Trang 7

MỤC LỤC

DANH MỤC HÌNH ẢNH 1

LỜI MỞ ĐẦU 3

GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP 4

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI 6

1.1 Lý do chọn đề tài 6

1.2 Mục tiêu của đề tài 7

1.3 Phạm vi nghiên cứu của đề tài 7

1.3.1 Ngôn ngữ lập trình và công cụ 7

1.3.2 Lĩnh vực và nguồn dữ liệu 8

1.3.3 Thời gian nghiên cứu 8

1.3.4 Đối tượng và quy mô nghiên cứu 8

1.3.5 Giới hạn nghiên cứu 9

CHƯƠNG 2: TỔNG QUAN VỀ WEB SCRAPING 10

2.1 Khái niệm và ứng dụng Web Scraping 10

2.1.1 Khái niệm 10

2.1.2 Ứng dụng 10

2.2 Các phương pháp và kỹ thuật Web Scraping 11

2.2.1 Các phương pháp 11

2.2.2 Kỹ thuật Web Scraping 12

2.3 Những thách thức và rủi ro khi thực hiện 12

2.3.1 Thách thức khi thực hiện Web Scraping 12

2.3.2 Rủi ro pháp lý và đạo đức 13

CHƯƠNG 3: GIỚI THIỆU VỀ PYTHON VÀ CÁC THƯ VIỆN WEB SCRAPING 14

3.1 Tổng quan về Python 14

Trang 8

3.1.1 Lịch sử hình thành 14

3.1.2 Một vài sự thật thú vị về Python 15

3.1.3 Đặc tính của Python 16

3.1.4 Một số ứng dụng của Python 17

3.2 Lý do chọn Python cho việc Web Scraping 19

3.3 Các thư viện phổ biến trong Web Scraping 20

3.3.1 BeautifulSoup 20

3.3.2 Scrapy 21

3.3.3 Selenium 23

3.3.4 Request 25

3.3.5 Ưu và nhược điểm của từng thư viện 26

CHƯƠNG 4: TRIỂN KHAI MÃ WEB SCRAPING BẰNG PYTHON 29

4.1 Chuẩn bị môi trường và công cụ 29

4.2 Thực hiện xây dựng chương trình code thử nghiệm 30

4.3 Cải tiến Code thử nghiệm thành Automation 33

4.4 Lưu trữ dữ liệu và xử lý các vấn đề thường gặp 38

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 45

5.1 Kết luận 45

5.2 Hướng phát triển 46

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

Trang 9

DANH MỤC HÌNH ẢNH

Hình 1.1 Web Scraping 6

Hình 1.2 Ngôn ngữ lập trình Python 7

Hình 2.1 Sơ lược về Web Scraping 10

Hình 2.2 Kỹ Thuật Web Scraping 12

Hình 2.3 Rủi ro về pháp lý 13

Hình 3.1 Python 14

Hình 3.2 Người sáng lập Python 14

Hình 3.3 Một số ứng dụng của Python 17

Hình 3.4 Ví dụ minh họa về BeautifulSoup 20

Hình 3.5 Ví dụ minh họa về Scrapy 22

Hình 3.6 Ví dụ minh họa về Selenium 23

Hình 3.7 Ví dụ minh họa về Request 25

Hình 4.1 Thiết lập môi trường ảo 29

Hình 4.2 Cài đặt các thư viện cần thiết 29

Hình 4.3 Kiểm tra các thư viện và WebDrive 30

Hình 4.4 Code thử nghiệm thu thập số liệu từ nguồn 24hmoney 31

Hình 4.5 Minh họa các thành phần đầy đủ của 1 báo cáo tài chính 32

Hình 4.6 Part 1 của đoạn chương trình đã được cải tiến 34

Hình 4.7 Part 2 của đoạn chương trình đã được cải tiến 35

Hình 4.8 Part 3 của đoạn chương trình đã được cải tiến 36

Hình 4.9 Part 4 của đoạn chương trình đã được cải tiến 37

Hình 4.10 Kết quả minh họa về file xlsx đã được thu thập đầy đủ 38

Hình 4.11 Minh họa trường hợp 1 39

Hình 4.12 Đoạn mã xử lý vấn đề di chuyển file vào đúng folder 40

Hình 4.13 Kết quả xử lý 40

Hình 4.15 Yêu cầu Format viết tắt chung 41

Trang 10

Hình 4.16 Part 1 của đoạn mã tự động đổi tên 42 Hình 4.17 Part 2 của đoạn mã tự động đổi tên 43 Hình 4.18 Kết quả của minh họa đổi tên tự động 44

Trang 11

LỜI MỞ ĐẦU

Trong thời đại số hóa ngày nay, thông tin là một tài sản vô giá, quyết định sự thành công của nhiều doanh nghiệp và tổ chức Tuy nhiên, việc thu thập và xử lý khối lượng lớn dữ liệu từ các trang web một cách thủ công không chỉ tốn thời gian mà còn dễ gây ra sai sót Đây là lúc công nghệ web scraping trở thành một công cụ hữu ích và mạnh mẽ Python, với những thư viện mạnh mẽ và dễ sử dụng, đã trở thành ngôn ngữ lập trình hàng đầu cho việc thực hiện các tác vụ web scraping tự động

Trong bài viết này, chúng ta sẽ khám phá cách ứng dụng Python trong việc tự động hóa quá trình web scraping Chúng ta sẽ tìm hiểu về các khái niệm cơ bản, công cụ và kỹ thuật cần thiết để xây dựng một hệ thống thu thập dữ liệu tự động, đồng thời minh họa qua các ví dụ thực tế Mục tiêu là giúp bạn đọc không chỉ hiểu rõ hơn về công nghệ web scraping mà còn có thể áp dụng Python một cách hiệu quả để giải quyết các vấn đề thực tiễn trong công việc và nghiên cứu

Trang 12

GIỚI THIỆU VỀ ĐƠN VỊ THỰC TẬP

Biên giới phân tích dữ liệu đang ngày càng mở rộng nhanh chóng và đường chân trời là đầy hứa hẹn Những tiến bộ công nghệ mà chúng ta đang chứng kiến mang tính cách mạng, vượt qua ranh giới của những gì có thể làm được trong kỹ thuật phân tích dữ liệu Tuy nhiên, kỹ thuật phân tích dữ liệu có hiện đại thế nào cũng sẽ vô nghĩa hoặc giảm ý nghĩa nếu như không có dữ liệu tốt

Dữ liệu đóng vai trò là nền tảng của công nghệ hiện đại, từ đồng hồ theo dõi sức khỏe đến các chính phủ thông minh, từ cá nhân, tổ chức, doanh nghiệp đến các nhà hoạch định chính sách Clive Robert Humby xem dữ liệu như là dầu mỏ mới của thế kỷ 21, còn chúng tôi xem dữ liệu là nhựa sống trong kỷ nguyên số Nói chung, dữ liệu đóng vai trò to lớn trong xã hội chúng ta ngày nay, góp phần cải thiện hiệu quả phân bổ nguồn lực, giúp tạo ra các sản phẩm, dịch vụ và công nghệ mới phục vụ con người, thúc đẩy phát triển kinh tế và làm thay đổi xã hội theo hướng tốt đẹp hơn

Ở Việt Nam, việc sử dụng dữ liệu để phân tích, hoạch định chính sách và đưa ra các quyết định ở nhiều cấp độ khác nhau còn rất hạn chế và chưa được coi trọng Chính phủ, chính quyền địa phương, các cơ quan nhà nước chưa xem trọng việc hoạch định chính sách dựa trên bằng chứng dữ liệu Do đó, nhiều chính sách được đề xuất và quyết định đưa ra mang nặng cảm

Trang 13

tính, chủ quan, thiếu tính khả thi và phát sinh nhiều bất cập qua thực tiễn áp dụng Trong khi đó, nhiều doanh nghiệp ở khu vực tư cũng chưa thấy được tầm quan trọng của dữ liệu và phân tích dữ liệu trong hoạt động kinh doanh Chính vì vậy, chưa có nhiều doanh nghiệp sẵn lòng bỏ tiền để có dữ liệu và phân tích dữ liệu phục vụ cho mục đích kinh doanh của mình Ở khía cạnh ngược lại, dữ liệu không đầy đủ, chất lượng dữ liệu thấp và độ tin cậy thấp cũng ảnh hưởng đến kết quả phân tích cũng như việc xây dựng kế hoạch kinh doanh, khiến cho niềm tin vào việc sử dụng dữ liệu bị suy giảm Hiểu được ý nghĩa to lớn của dữ liệu và vai trò của phân tích dữ liệu, Vietstats và đội ngũ của mình tìm cách khai thác theo cách sáng tạo nhất, tối ưu hóa hệ thống các cơ sở dữ liệu về kinh tế hiện có để cải thiện việc hoạch định các chính sách từ vĩ mô đến vi mô, từ khu vực công đến khu vực tư, từ chính phủ trung ương đến chính quyền địa phương, giúp nâng cao chất lượng công tác hoạch định chính sách và đưa ra các quyết định chính xác, kịp thời và hiệu quả hơn Dữ liệu không thể được sử dụng theo cách riêng lẻ và máy móc, thiếu hiểu biết về nguồn gốc và độ tin cậy của dữ liệu, vì dữ liệu có chất lượng phải được trải qua quá trình tổng hợp, xử lý, làm sạch và chuyển đổi nghiêm ngặt bởi đội ngũ chuyên gia trong các ngành kết hợp với chuyên gia dữ liệu để được coi là dữ liệu có giá trị

Với đội ngũ chuyên gia phân tích dữ liệu hàng đầu, sự kết hợp giữa trí tuệ thiên tạo (NI) và trí tuệ nhân tạo (AI) cùng năng lực ứng dụng các công cụ phân tích dữ liệu hiện đại, Vietstats đặt mục tiêu trở thành nhà cung cấp dữ liệu kinh tế, nhà phân tích dữ liệu kinh tế và là nhà tư vấn chính sách kinh tế, tài chính và thị trường uy tín, chuyên nghiệp hàng đầu Việt Nam dựa trên tài nguyên dữ liệu lớn về kinh tế của Vietstats

Trang 14

CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ ĐỀ TÀI

Không chỉ là một phần quan trọng trong công việc thực tập của tôi, web scraping còn trở thành một công cụ thiết yếu trong thời đại số hiện nay Hầu hết các công ty đang cần phải thu thập và xử lý lượng lớn thông tin từ internet để hỗ trợ các quyết định kinh doanh, nghiên cứu thị trường, và phân tích cạnh tranh Python, với các thư viện như BeautifulSoup, Scrapy, và Selenium, đã chứng tỏ là công cụ mạnh mẽ và linh hoạt trong việc thực hiện các tác vụ web scraping Đề tài này không chỉ giúp chúng ta áp dụng và mở rộng kiến thức đã học mà còn cung cấp cái nhìn sâu hơn về cách thức tối ưu hóa quy trình thu thập dữ liệu trong môi trường thực tế,

Trang 15

đáp ứng nhu cầu ngày càng tăng của các doanh nghiệp trong thời đại kỹ thuật số

1.2 Mục tiêu của đề tài

Mục tiêu chính của đề tài là:

• Cung cấp kiến thức cơ bản và nâng cao về Python, Web Scraping bao gồm các khái niệm, kỹ thuật và công cụ sử dụng

• Hướng dẫn cách sử dụng Python và các thư viện liên quan để xây dựng các đoạn mã để Web Scraping tự động

• Triển khai xây dựng code vào thực tế để giúp người đọc nắm vững kỹ năng và có thể áp dụng vào thực tế

• Đánh giá và so sánh hiệu quả của các phương pháp khác nhau

• Tạo ra một tài liệu tham khảo chi tiết và hữu ích cho những ai quan tâm đến việc ứng dụng Python trong Web Scraping

1.3 Phạm vi nghiên cứu của đề tài

Phạm vi nghiên cứu của đề tài này bao gồm các nội dung sau:

1.3.1 Ngôn ngữ lập trình và công cụ

Hình 1.2 Ngôn ngữ lập trình Python

Trang 16

• Sử dụng ngôn ngữ lập trình Python và các thư viện hỗ trợ Web Scraping như BeautifulSoup, Scrapy, Selenium

• Sử dụng các công cụ hỗ trợ như IDE (Integrated Development Environment) và các trình duyệt (browser) để kiểm tra và thu thập dữ liệu

1.3.2 Lĩnh vực và nguồn dữ liệu

• Tập trung vào việc thu thập dữ liệu từ các trang web (24hmoney) thuộc nhiều lĩnh vực khác nhau như: tài chính, ngân hàng, xây dựng, bất động sản, đồ uống,…

• Chỉ thu thập dữ liệu từ các trang web công khai, không xâm phạm vào các trang web yêu cầu quyền truy cập hoặc các trang web bị bảo vệ bằng mật khẩu

1.3.3 Thời gian nghiên cứu

• Đề tài được thực hiện trong khoảng thời gian từ tháng 01/06 đến tháng 28/07 năm 2024

• Phạm vi thời gian này bao gồm các giai đoạn nghiên cứu lý thuyết, thiết kế, triển khai, thử nghiệm, và đánh giá

1.3.4 Đối tượng và quy mô nghiên cứu

• Đối tượng nghiên cứu là các trang web có cấu trúc HTML và dữ liệu cần thu thập phục vụ cho các mục tiêu phân tích và nghiên cứu cụ thể

• Quy mô dữ liệu sẽ được giới hạn trong khả năng xử lý của hệ thống và tài nguyên có sẵn, đảm bảo việc thu thập và xử lý dữ liệu có thể thực hiện được trong thời gian và nguồn lực cho phép

Trang 17

1.3.5 Giới hạn nghiên cứu

• Không đi sâu vào các khía cạnh pháp lý và đạo đức của việc thu thập dữ liệu từ các trang web

• Không bao gồm việc thu thập dữ liệu từ các trang web có yêu cầu quyền truy cập đặc biệt hoặc các trang web có bảo vệ nghiêm ngặt • Các phương pháp và kỹ thuật Web Scraping sẽ được giới hạn trong

những công cụ, thư viện Python phổ biến và dễ tiếp cận

Trang 18

CHƯƠNG 2: TỔNG QUAN VỀ WEB SCRAPING

2.1 Khái niệm và ứng dụng Web Scraping

Hình 2.1 Sơ lược về Web Scraping

2.1.1 Khái niệm

Web scraping là quá trình tự động trích xuất dữ liệu từ các trang web Thay vì phải thu thập dữ liệu một cách thủ công, web scraping sử dụng các công cụ và kỹ thuật lập trình để tự động hóa việc truy cập, lấy dữ liệu và lưu trữ thông tin từ các trang web

2.1.2 Ứng dụng

Web scraping có nhiều ứng dụng trong các lĩnh vực khác nhau:

Trang 19

Thương mại điện tử: Thu thập thông tin về giá cả, sản phẩm, và đánh

giá khách hàng từ các trang web bán hàng để phân tích và cạnh tranh

Nghiên cứu thị trường: Thu thập dữ liệu về xu hướng thị trường,

hành vi người tiêu dùng, và phân tích đối thủ cạnh tranh

Phân tích dữ liệu: Thu thập dữ liệu từ các nguồn web để phân tích,

trực quan hóa, và đưa ra các dự đoán

Báo chí và truyền thông: Thu thập tin tức, bài viết, và các thông tin

khác từ nhiều nguồn để tổng hợp và phân tích

2.2 Các phương pháp và kỹ thuật Web Scraping

2.2.1 Các phương pháp

Các phương pháp thông dụng:

Parsing HTML: Phân tích cấu trúc HTML của trang web và sử dụng

các công cụ như BeautifulSoup để trích xuất thông tin

Sử dụng API: Một số trang web cung cấp API cho phép truy cập và

lấy dữ liệu một cách chính thống và dễ dàng hơn

Selenium: Sử dụng Selenium để tự động hóa việc duyệt web, đặc biệt

là khi trang web sử dụng nhiều JavaScript để hiển thị nội dung

Scrapy: Sử dụng framework Scrapy để xây dựng các trình thu thập

dữ liệu mạnh mẽ và hiệu quả

Trang 20

2.2.2 Kỹ thuật Web Scraping

Hình 2.2 Kỹ Thuật Web Scraping

Các kỹ thuật phổ biến:

Phân tích cấu trúc DOM (Document Object Model): Hiểu và truy

cập các phần tử HTML dựa trên cấu trúc DOM

XPaths và CSS Selectors: Sử dụng XPaths và CSS Selectors để tìm

và trích xuất các phần tử cụ thể từ trang web

Xử lý dữ liệu: Làm sạch và chuẩn hóa dữ liệu thu thập được để chuẩn

bị cho các bước phân tích tiếp theo

2.3 Những thách thức và rủi ro khi thực hiện

2.3.1 Thách thức khi thực hiện Web Scraping

Những thách thức có thể gặp phải trong quá trình thực hiện:

Thay đổi cấu trúc trang web: Các trang web có thể thay đổi cấu trúc

HTML của chúng mà không thông báo, làm cho các script scraping bị lỗi

Hạn chế truy cập: Một số trang web có thể giới hạn số lần truy cập

hoặc sử dụng CAPTCHA để ngăn chặn các bot tự động

Trang 21

Tốc độ và hiệu suất: Web scraping có thể tốn nhiều thời gian và tài

nguyên, đặc biệt là khi thu thập dữ liệu từ nhiều nguồn hoặc các trang web phức tạp

2.3.2 Rủi ro pháp lý và đạo đức

Hình 2.3 Rủi ro về pháp lý

Có thể dẫn đến những rủi ro pháp lý và đạo đức như sau:

Vi phạm điều khoản dịch vụ: Một số trang web có điều khoản dịch

vụ cấm việc thu thập dữ liệu tự động

Quyền riêng tư và bản quyền: Thu thập dữ liệu cá nhân hoặc nội

dung có bản quyền mà không được phép có thể dẫn đến các vấn đề pháp lý và đạo đức

Trang 22

CHƯƠNG 3: GIỚI THIỆU VỀ PYTHON VÀ CÁC THƯ VIỆN WEB SCRAPING

3.1 Tổng quan về Python

Hình 3.1 Python

Python là một ngôn ngữ lập trình bậc cao, dễ học, và linh hoạt, được tạo ra bởi Guido van Rossum và ra mắt lần đầu vào năm 1991 Python nổi bật với cú pháp rõ ràng và dễ hiểu, giúp cho việc viết mã trở nên dễ dàng hơn, đặc biệt là đối với người mới bắt đầu

3.1.1 Lịch sử hình thành

Hình 3.2 Người sáng lập Python

Trang 23

Từ những năm đầu 1991: Python được Guido van Rossum tạo ra vào

cuối những năm 1980 và phát hành lần đầu vào năm 1991 Ban đầu, Python không phải là một ngôn ngữ phổ biến như hiện nay, mà chủ yếu được sử dụng trong môi trường học thuật và nghiên cứu

Trong những năm 2000: Trong suốt những năm 2000, Python bắt

đầu thu hút sự chú ý nhờ vào sự đơn giản, dễ đọc, và khả năng ứng dụng rộng rãi Các phiên bản mới của Python liên tục được phát hành, cải thiện hiệu suất và thêm nhiều tính năng mới

Khoảng từ năm 2010 trở đi: Python bắt đầu trở nên cực kỳ phổ biến

nhờ vào sự bùng nổ của big data và khoa học dữ liệu Các thư viện mạnh mẽ như NumPy, pandas, Matplotlib, và đặc biệt là scikit-learn, TensorFlow và PyTorch đã giúp Python trở thành công cụ quan trọng trong các lĩnh vực này

3.1.2 Một vài sự thật thú vị về Python

• Python được phát triển vào cuối những năm 1980 bởi Guido van Rossum tại Viện Nghiên cứu Quốc gia về Toán học và Khoa học Máy tính ở Hà Lan với tư cách là người kế thừa ngôn ngữ ABC có khả năng xử lý và giao tiếp ngoại lệ

• Python có nguồn gốc từ các ngôn ngữ lập trình như ABC, Modula 3, small talk, Algol-68

• Van Rossum đã chọn tên Python cho ngôn ngữ mới từ một chương trình truyền hình, Monty Python’s Flying Circus

• Trang Python là một tệp có phần mở rộng py chứa có thể là sự kết hợp của Thẻ HTML và tập lệnh Python

• Vào tháng 12 năm 1989, người sáng tạo đã phát triển trình thông dịch python đầu tiên như một sở thích, và sau đó vào ngày 16 tháng 10 năm 2000, Python 2.0 được phát hành với nhiều tính năng mới

Trang 24

• Vào ngày 3 tháng 12 năm 2008, Python 3.0 được phát hành với nhiều thử nghiệm hơn và bao gồm các tính năng mới

• Python là một ngôn ngữ kịch bản mã nguồn mở

• Python là mã nguồn mở, có nghĩa là bất kỳ ai cũng có thể tải xuống miễn phí từ trang chủ và sử dụng nó để phát triển các chương trình Mã nguồn của nó có thể được truy cập và sửa đổi theo yêu cầu trong dự án

• Python là một trong những ngôn ngữ chính thức tại Google

Trang 25

• Có thể cải tiến: Python cung cấp một cấu trúc cải tiến để hỗ trợ các chương trình lớn sau đó là shell-script

3.1.4 Một số ứng dụng của Python

Hình 3.3 Một số ứng dụng của Python

Python thường được sử dụng để phát triển trang web và phần mềm, tự động hóa tác vụ, phân tích dữ liệu và trực quan hóa dữ liệu Vì tương đối dễ học, Python đã được nhiều người không phải là lập trình viên như kế toán và nhà khoa học áp dụng cho nhiều công việc hàng ngày, chẳng hạn như tổ chức tài chính

+ Phân tích dữ liệu và học máy:

• Python đã trở thành một yếu tố chính trong khoa học dữ liệu, cho phép các nhà phân tích dữ liệu và các chuyên gia khác sử dụng ngôn ngữ này để thực hiện các phép tính thống kê phức tạp, tạo trực quan hóa dữ liệu, xây dựng thuật toán học máy, thao tác và phân tích dữ liệu cũng như hoàn thành các nhiệm vụ khác liên quan đến dữ liệu • Python có thể xây dựng nhiều dạng trực quan hóa dữ liệu khác nhau,

chẳng hạn như biểu đồ đường và thanh, biểu đồ hình tròn, biểu đồ 3D Python cũng có một số thư viện cho phép các lập trình viên viết

Trang 26

chương trình để phân tích dữ liệu và học máy nhanh hơn và hiệu quả hơn, như TensorFlow và Keras

+ Phát triển web:

• Python thường được sử dụng để phát triển back-end của trang web hoặc ứng dụng—những phần mà người dùng không nhìn thấy Vai trò của Python trong phát triển web có thể bao gồm gửi dữ liệu đến và đi từ máy chủ, xử lý dữ liệu và giao tiếp với cơ sở dữ liệu, định tuyến URL và đảm bảo tính bảo mật Python cung cấp một số khuôn khổ để phát triển web Những cái thường được sử dụng bao gồm Django và Flask

• Một số công việc phát triển web sử dụng Python bao gồm kỹ sư phụ trợ, nhà phát triển Python, kỹ sư phần mềm và kỹ sư DevOps

+ Tự động hoá và phát triển phần mềm

• Nếu bạn thấy mình thực hiện một nhiệm vụ lặp đi lặp lại, bạn có thể làm việc hiệu quả hơn bằng cách tự động hóa nó bằng Python Quá trình viết code được sử dụng để xây dựng các quy trình tự động này được gọi là viết script Trong thế giới mã hóa, tự động hóa có thể được sử dụng để kiểm tra lỗi trên nhiều tệp, chuyển đổi tệp, thực hiện phép toán đơn giản và loại bỏ các bản sao trong dữ liệu

• Python thậm chí có thể được sử dụng bởi những người mới bắt đầu để tự động hóa các tác vụ đơn giản trên máy tính—chẳng hạn như đổi tên tệp, tìm và tải xuống nội dung trực tuyến hoặc gửi email hoặc văn bản theo khoảng thời gian mong muốn

• Trong phát triển phần mềm, Python có thể hỗ trợ các tác vụ như kiểm soát bản dựng, theo dõi lỗi và thử nghiệm Với Python, các nhà phát triển phần mềm có thể tự động kiểm tra các sản phẩm hoặc tính năng mới Một số công cụ Python được sử dụng để kiểm thử phần mềm bao gồm Green và Requestium

Trang 27

3.2 Lý do chọn Python cho việc Web Scraping

Web Scraping là quá trình tự động thu thập thông tin từ các trang web Python là một lựa chọn phổ biến cho việc web scraping bởi nhiều lý do:

Dễ học và sử dụng: Python có cú pháp đơn giản và dễ hiểu, giúp cho

việc bắt đầu với web scraping trở nên dễ dàng hơn, đặc biệt đối với người mới học lập trình

Thư viện mạnh mẽ: Python có nhiều thư viện hỗ trợ mạnh mẽ cho

việc web scraping như BeautifulSoup, Scrapy, và Selenium, giúp việc thu thập và phân tích dữ liệu từ web trở nên đơn giản và hiệu quả

Cộng đồng hỗ trợ: Python có một cộng đồng lập trình viên lớn và

tích cực, luôn sẵn sàng hỗ trợ và chia sẻ kiến thức thông qua các diễn đàn, blog, và tài liệu hướng dẫn

Khả năng mở rộng: Python dễ dàng tích hợp với các công cụ và thư

viện khác như Pandas, NumPy, và Matplotlib để xử lý và phân tích dữ liệu sau khi thu thập

Tài liệu phong phú: Python có rất nhiều tài liệu hướng dẫn, blog, và

diễn đàn hỗ trợ, giúp người dùng dễ dàng tìm kiếm thông tin và giải quyết các vấn đề gặp phải trong quá trình làm việc

Tích hợp dễ dàng với các công cụ khác: Python dễ dàng tích hợp với

các công cụ và thư viện khác, cho phép lập trình viên xây dựng các hệ thống phức tạp và thực hiện các tác vụ nâng cao như phân tích dữ liệu, học máy, và trí tuệ nhân tạo

Trang 28

3.3 Các thư viện phổ biến trong Web Scraping

3.3.1 BeautifulSoup

+ Khái niệm:

BeautifulSoup là một thư viện Python được sử dụng để phân tích cú pháp HTML và XML, giúp trích xuất dữ liệu một cách dễ dàng từ các trang web Nó cung cấp các phương pháp đơn giản để điều hướng, tìm kiếm và sửa đổi cây phân tích cú pháp

+ Ví dụ minh họa về trích xuất các file xlsx, pdf,

Hình 3.4 Ví dụ minh họa về BeautifulSoup

requests.get(url): Gửi yêu cầu HTTP GET tới URL và nhận về

phản hồi

BeautifulSoup(response.text, 'html.parser'): Tạo đối tượng

BeautifulSoup từ nội dung HTML

Ngày đăng: 05/08/2024, 22:26

TỪ KHÓA LIÊN QUAN

w