Tải bản đầy đủ (.pdf) (35 trang)

Thực tập cơ sở PTIT Dự đoán giá nhà và giá nhà trọ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.85 MB, 35 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN

BÁO CÁO THỰC TẬP CƠ SỞ
CHUYÊN NGÀNH: CÔNG NGHỆ THƠNG TIN
ĐỀ TÀI: DỰ ĐỐN GIÁ NHÀ Ở

Giảng viên hướng dẫn:
Sinh viên thực hiện:
Mã sinh viên:
Lớp:

TS. Đào Ngọc Phong
Lê Tuấn Anh
B20DCCN054
D20CQCN06-B

Hà Nội, 5/2022


MỤC LỤC
CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI...................................................... 2
1.1. Tên gọi ......................................................................................................... 2
1.2. Mơ tả hệ thống ............................................................................................ 2
1.3. Mục đích của đề tài ...................................................................................... 2

CHƯƠNG 2. CÁC NỘI DUNG KHÁI NIỆM SỬ DỤNG TRONG
QUÁ TRÌNH NGHIÊN CỨU ................................................................. 3
2.1. HTML ........................................................................................................... 3
2.1.1. HTML là gì? ..............................................................................................3
2.1.2. HTML hoạt động ra sao? ...........................................................................3


2.2. CSS ............................................................................................................... 4
2.3. Python Selenium .......................................................................................... 5
2.3.1. Python Selenium là gì? ..............................................................................5
2.4. Django.......................................................................................................... 6
2.4.1. Django là gì? ..............................................................................................6
2.5. Javascript ..................................................................................................... 7
2.5.1. Javascript là gì?..........................................................................................7
2.5.2. JavaScript dùng làm gì? .............................................................................7
2.6. Machine Learning và các thư viện khoa học dữ liệu ..................................... 8
2.6.1. Machine Learning là gì? ............................................................................8
2.6.2. Các thư viện Python khoa học dữ liệu .......................................................9
2.7. REST API ..................................................................................................... 10
2.7.1. REST API là gì? ......................................................................................10
2.7.2. REST API hoạt động như thế nào? .........................................................11
2.7.3. Status code ...............................................................................................12
2.7.4. Ưu điểm của REST API ..........................................................................12

CHƯƠNG 3. KẾT QUẢ ĐẠT ĐƯỢC VÀ QUÁ TRÌNH LÀM VIỆC
................................................................................................................. 14


3.1. Crawl dữ liệu web ...................................................................................... 14
3.1.1. Batdongsan.com.vn .................................................................................14
3.1.2. Chotot.com...............................................................................................18
3.2. Trực quan hóa dữ liệu crawl từ trang Chotot.vn ........................................ 20
3.3. Phân tích chi tiết ........................................................................................ 20
3.4. Dự đốn giá nhà với dữ liệu batdongsan.com.vn và chotot.vn .................. 28
3.4.1. Dữ liệu của Batdongsan.com.vn: .............................................................28
3.5. Load mơ hình vào server và hiển thị giá lên phía web ................................ 32
3.5.1. Batdongsan.com.vn .................................................................................32



LỜI CẢM ƠN
Em muốn gửi lời cảm ơn tới Thầy Đào Ngọc Phong – và nhà trường đã tạo điều
kiện để chúng em có mơn thực hành cơ sở. Nhờ có mơn học này mà em đã có thể tự
thúc đẩy mình trong quá trình tiếp thu kiến thức và tự tìm hiểu các kiến thức mới.
Trong quá trình tìm hiểu về đề tài Dự đoán giá cũng như làm báo cáo thực tập này,
do trình độ và kinh nghiệm thực tiễn cịn hạn chế nên khơng tránh khỏi những thiếu
sót, em rất mong nhận được ý kiến đóng góp từ giảng viên hướng dẫn để em có thể
học hỏi, rút kinh nghiệm và cải thiện trong tương lai.

1


CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI
1.1. Tên gọi
Đề tài : Dự đoán giá nhà ở, dữ liệu thực được crawl trực tiếp từ chotot.com,
batdongsan.com.vn...

1.2. Mô tả hệ thống
Đề tài sử dụng dữ liệu được crawl từ các trang bất động sản như
batdongsan.com.vn. Sử dụng Python để tiền xử lí dữ liệu. Chuẩn hóa và mã hóa dữ
liệu để đưa vào mơ hình máy học Machine Learning để dự đốn. Sử dụng html/css/js
để triển khai extension lên google chorme. Sử dụng Django tải mơ hình và dự đốn
giá nhà của từng bài tin và trả về web client.

1.3. Mục đích của đề tài
Tạo ra một extension giúp người dùng có thể tham khảo giá mặt bằng chung để
dễ dàng đưa ra quyết định.


2


CHƯƠNG 2. CÁC NỘI DUNG KHÁI NIỆM SỬ DỤNG TRONG
QUÁ TRÌNH NGHIÊN CỨU
2.1. HTML
2.1.1. HTML là gì?
HTML là viết tắt của cụm từ Hypertext Markup Language (tạm dịch là Ngôn
ngữ đánh dấu siêu văn bản). HTML được sử dụng để tạo và cấu trúc các thành phần
trong trang web hoặc ứng dụng, phân chia các đoạn văn, heading, titles,
blockquotes… và HTML khơng phải là ngơn ngữ lập trình.
Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements)
được quy định bằng các cặp thẻ (tag và attributes). Các cặp thẻ này được bao bọc
bởi một dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báo thành một
cặp, bao gồm thẻ mở và thẻ đóng. Ví dụ, chúng ta có thể tạo một đoạn văn bằng cách
đặt văn bản vào trong cặp tag mở và đóng văn bản

:

Đây là cách bạn thêm đoạn văn trong HTML.


Nhưng một số thẻ đặc biệt lại khơng có thẻ đóng và dữ liệu được khai báo sẽ
nằm trong các thuộc tính (ví dụ như thẻ <img>).
Cha đẻ của HTML là Tim Berners-Lee, cũng là người khai sinh ra World Wide
Web và chủ tịch của World Wide Web Consortium (W3C – tổ chức thiết lập ra các
chuẩn trên môi trường Internet). Các thiết lập và cấu trúc HTML được vận hành và
phát triển bởi World Wide Web Consortium (W3C). Bạn có thể kiểm tra tình trạng
mới nhất của ngôn ngữ này bất kỳ lúc nào trên trang W3C’s website.
2.1.2. HTML hoạt động ra sao?
Các website hoạt động như thế nào? Khi bạn gõ ra 1 tên miền, trình duyệt mà
bạn đang sử dụng (chẳng hạn như Chrome) sẽ kết nối tới 1 máy chủ web, bằng cách
dùng 1 địa chỉ IP, vốn được thấy bằng cách phân giải tên miền đó (DNS). Máy chủ
3



web chính là 1 máy tính được kết nối tới internet và nhận các yêu cầu tới trang web
từ trình duyệt của bạn. Máy chủ sau đó sẽ gửi trả thơng tin về trình duyệt của bạn,
là 1 tài liệu HTML, để hiển thị trang web!
Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi
mở rộng là .html hoặc .htm. Khi một tập tin HTML được hình thành, việc xử lý nó
sẽ do trình duyệt web đảm nhận. Trình duyệt sẽ đóng vai trò đọc hiểu nội dung
HTML từ các thẻ bên trong và sẽ chuyển sang dạng văn bản đã được đánh dấu để
đọc, nghe hoặc hiểu (do các bot máy tính hiểu).
Bạn có thể xem chúng bằng cách sử dụng bất kỳ trình duyệt web nào (như
Google Chrome, Safari, hay Mozilla Firefox). Trình duyệt đọc các files HTML này
và xuất bản nội dung lên internet sao cho người đọc có thể xem được nó.
Thơng thường, trung bình một web chứa nhiều trang web HTML, ví dụ như:
trang home, trang product, trang blog…

2.2. CSS
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngơn ngữ được sử
dụng để tìm và định dạng lại các phần tử được tạo ra bởi các ngơn ngữ đánh dấu
(HTML). Nói ngắn gọn hơn là ngơn ngữ tạo phong cách cho trang web. Bạn có thể
hiểu đơn giản rằng, nếu HTML đóng vai trị định dạng các phần tử trên website như
việc tạo ra các đoạn văn bản, các tiêu đề, bảng,…thì CSS sẽ giúp chúng ta có thể
thêm style vào các phần tử HTML đó như đổi bố cục, màu sắc trang, đổi màu chữ,
font chữ, thay đổi cấu trúc…
CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm 1996,
vì HTML khơng được thiết kế để gắn tag để giúp định dạng trang web.
Phương thức hoạt động của CSS là nó sẽ tìm dựa vào các vùng chọn, vùng chọn
có thể là tên một thẻ HTML, tên một ID, class hay nhiều kiểu khác. Sau đó là nó sẽ
áp dụng các thuộc tính cần thay đổi lên vùng chọn đó. Mối tương quan giữa HTML
4



và CSS rất mật thiết. HTML là ngôn ngữ markup (nền tảng của site) và CSS định
hình phong cách (tất cả những gì tạo nên giao diện website), chúng là khơng thể tách
rời.

2.3. Python Selenium
2.3.1. Python Selenium là gì?
Python Selenium là một thư viện Python được sử dụng để tự động hóa các hoạt
động trên trình duyệt web. Nó cung cấp các phương thức và công cụ cho phép bạn
tương tác với các trình duyệt web thơng qua mã Python.
Với Python Selenium, bạn có thể thao tác với các trình duyệt phổ biến như
Chrome, Firefox, Safari và Edge. Thư viện này hỗ trợ việc điều khiển trình duyệt
web, điều hướng qua các trang, điền thông tin vào các biểu mẫu, tìm kiếm và trích
xuất dữ liệu từ các trang web, và thậm chí thao tác với các yếu tố như nút bấm, ơ
đánh dấu, hình ảnh và các phần tử HTML khác.
Điểm mạnh của Selenium
Đa nền tảng: Selenium hỗ trợ đa nền tảng, cho phép bạn thao tác với các trình
duyệt web phổ biến như Chrome, Firefox, Safari và Edge trên các hệ điều hành khác
nhau như Windows, macOS và Linux.
Tự động hóa các hoạt động trình duyệt: Selenium cho phép bạn tự động hóa
các hoạt động trên trình duyệt web như điều hướng qua các trang, điền thông tin vào
biểu mẫu, tìm kiếm và trích xuất dữ liệu từ các trang web. Điều này giúp tăng hiệu
suất và tiết kiệm thời gian cho các công việc lặp đi lặp lại trên web.
Tương tác với các yếu tố web: Python Selenium cung cấp các phương thức và
công cụ cho phép bạn tương tác với các yếu tố trên trang web như nút bấm, ơ đánh
dấu, hình ảnh và các phần tử HTML khác. Điều này cho phép bạn thực hiện các tác

5



vụ như nhấp chuột, điền thông tin, kiểm tra trạng thái và thu thập thông tin từ các
yếu tố web.
Kiểm thử tự động: Selenium được sử dụng rộng rãi cho kiểm thử tự động trên
các ứng dụng web. Với Selenium, bạn có thể tạo các kịch bản kiểm thử tự động để
kiểm tra tính đúng đắn và hiệu suất của ứng dụng web trên nhiều trình duyệt và mơi
trường khác nhau.
+) Nhược điểm của Selenium
Do mỗi lần chạy sẽ mở trình duyệt gây tốn tài ngun, nếu tác vụ địi hỏi nhiều
lần chạy sẽ gây tốn rất nhiều tài nguyên máy.

2.4. Django
2.4.1. Django là gì?
Django là một framework phát triển ứng dụng web mạnh mẽ và phổ biến được
viết bằng Python. Django giúp các nhà phát triển xây dựng các ứng dụng web nhanh
chóng và dễ dàng bằng cách cung cấp nền tảng và các công cụ cần thiết để xử lý các
tác vụ phổ biến trong việc phát triển web như quản lý cơ sở dữ liệu, xử lý định tuyến
URL, quản lý phiên, gửi email, và xử lý biểu mẫu.
Django tn thủ theo mơ hình thiết kế MVC (Model-View-Controller) hoặc
MVT (Model-View-Template) trong trường hợp của Django. Mơ hình này giúp tách
biệt logic xử lý dữ liệu, hiển thị và quản lý dữ liệu trong ứng dụng web, giúp mã
nguồn dễ quản lý và bảo trì.
Django cung cấp một số tính năng mạnh mẽ như:
Hệ thống quản lý cơ sở dữ liệu: Django hỗ trợ nhiều loại cơ sở dữ liệu như
MySQL, PostgreSQL, SQLite, và Oracle. Nó cung cấp một API ORM (ObjectRelational Mapping) cho phép truy vấn và tương tác với cơ sở dữ liệu một cách dễ
dàng.

6


Hệ thống xử lý URL: Django giúp xác định các mẫu URL và định tuyến các

yêu cầu đến các hàm xử lý tương ứng.
Hệ thống quản lý phiên: Django hỗ trợ quản lý phiên của người dùng, cho phép
lưu trữ thông tin phiên và theo dõi trạng thái của người dùng trên ứng dụng web.
Hệ thống bảo mật: Django cung cấp các cơng cụ và tính năng để xác thực người
dùng, bảo vệ khỏi tấn công CSRF (Cross-Site Request Forgery), và xử lý an toàn
với dữ liệu người dùng.
Hệ thống giao diện quản trị: Django cung cấp giao diện quản trị sẵn có, cho
phép quản lý dữ liệu ứng dụng web một cách dễ dàng.
Django đã trở thành một trong những framework phát triển web phổ biến nhất
trong cộng đồng phát triển Python, với cộng đồng lớn và nhiều tài liệu hỗ trợ.

2.5. Javascript
2.5.1. Javascript là gì?
Javascript là một ngơn ngữ lập trình kịch bản dựa vào đối tượng phát triển có
sẵn hoặc tự định nghĩa. JavaScript được tích hợp và nhúng trong HTML giúp website
sống động hơn. JavaScript cho phép kiểm soát các hành vi của trang web tốt hơn so
với khi chỉ sử dụng mỗi HTML.
JavaScript là ngôn ngữ lập trình được hỗ trợ hầu như trên tất cả các trình duyệt
như Firefox, Chrome, … thậm chí các trình duyệt trên thiết bị di động.
2.5.2. JavaScript dùng làm gì?
JavaScript có thể được ứng dụng trong rất nhiều lĩnh vực:
 Lập trình website.
 Xây dựng ứng dụng cho website máy chủ.
 Ứng dụng di động, app, trò chơi.

7


 …
Khi tải một trang web, trình duyệt phân tích cú pháp HTML và tạo ra một loại

dữ liệu gọi là DOM từ nội dung. DOM thể hiện chế độ xem trực tiếp của trang web
với mã JavaScript. Đoạn mã này thực hiện cập nhật cho DOM và được trình bày
ngay lập tức cho người dùng.
Trình duyệt cũng ghi nhận các sự kiện giao diện người dùng như: di chuyển
chuột, nhấp chuột, v.v. Sau đó, tùy theo phản hồi của người dùng, đoạn mã sẽ thực
hiện công việc được lập trình tương ứng.
2.6. Machine Learning và các thư viện khoa học dữ liệu
2.6.1. Machine Learning là gì?
Machine Learning (Học máy) là một lĩnh vực trong trí tuệ nhân tạo (AI) mà
nó tập trung vào việc phát triển các thuật tốn và mơ hình để cho phép máy tính học
hỏi từ dữ liệu mà khơng cần được lập trình cụ thể. Mục tiêu của Machine Learning
là tạo ra các mơ hình hoặc chương trình có khả năng "học" từ dữ liệu và áp dụng
kiến thức đã học để thực hiện các tác vụ cụ thể hoặc đưa ra dự đoán.
Để bắt đầu với Machine Learning, có một số kiến thức cơ bản mà bạn nên hiểu:
Dữ liệu: Machine Learning dựa trên dữ liệu để học và làm dự đoán. Dữ liệu có
thể được chia thành hai loại chính: dữ liệu huấn luyện (training data) và dữ liệu kiểm
tra (test data). Dữ liệu huấn luyện được sử dụng để xây dựng mô hình và dữ liệu
kiểm tra được sử dụng để đánh giá hiệu suất của mơ hình.
Các loại Machine Learning: Có ba loại chính của Machine Learning: Học giám
sát (supervised learning), Học không giám sát (unsupervised learning) và Học tăng
cường (reinforcement learning). Trong học giám sát, mơ hình được huấn luyện bằng
cách sử dụng các cặp dữ liệu đầu vào và đầu ra đã được gán nhãn. Trong học không
giám sát, mơ hình học từ dữ liệu khơng có nhãn và tìm kiếm cấu trúc hoặc mơ hình

8


ẩn trong dữ liệu. Trong học tăng cường, mơ hình tương tác với môi trường và học từ
các phần thưởng (rewards) hoặc hình phạt (penalties) để đạt được mục tiêu.
Thuật tốn Machine Learning: Có nhiều thuật tốn Machine Learning khác

nhau như Hồi quy tuyến tính (Linear Regression), Máy vector hỗ trợ (Support Vector
Machines), Mạng nơ-ron (Neural Networks), Cây quyết định (Decision Trees), và
Phân cụm K-means (K-means Clustering), để chỉ định mơ hình và quy trình học của
họ. Mỗi thuật tốn có ưu điểm và hạn chế riêng, và phù hợp với các loại bài toán và
dữ liệu khác nhau.
Đánh giá và tinh chỉnh mơ hình: Sau khi xây dựng mơ hình, cần đánh giá hiệu
suất của nó. Các phép đo đánh giá phổ biến bao gồm độ chính xác (accuracy), độ
chính xác cân bằng (precision), độ phủ (recall), và F1-score. Ngồi ra, cần tinh chỉnh
mơ hình bằng cách điều chỉnh các tham số và áp dụng kỹ thuật tối ưu hóa như CrossValidation.
Tiền xử lý dữ liệu: Trước khi áp dụng các thuật toán Machine Learning, dữ liệu
thường cần được tiền xử lý để làm sạch, chuẩn hóa, và trích xuất các đặc trưng
(features) quan trọng. Điều này có thể bao gồm việc loại bỏ dữ liệu nhiễu (noise),
xử lý giá trị bị thiếu (missing values), và chuyển đổi dữ liệu về dạng phù hợp cho
thuật tốn.
Thư viện và cơng cụ: Có nhiều thư viện và cơng cụ hỗ trợ trong Python và R
để triển khai Machine Learning như scikit-learn, TensorFlow, Keras, PyTorch, và
caret.
2.6.2. Các thư viện Python khoa học dữ liệu
Có một số thư viện phổ biến cho khoa học dữ liệu trong ngơn ngữ lập trình
Python. Dưới đây là một số thư viện quan trọng và được sử dụng rộng rãi:

9


NumPy: NumPy (Numerical Python) là một thư viện cốt lõi cho tính tốn số
học và thực hiện các phép tốn trên mảng đa chiều. Nó cung cấp một cấu trúc dữ
liệu mảng mạnh mẽ và hỗ trợ các phép toán ma trận và tích vơ hướng.
Pandas: Pandas cung cấp các công cụ và cấu trúc dữ liệu linh hoạt để làm việc
với dữ liệu dạng bảng và chuỗi thời gian. Nó giúp thao tác, lọc, và biến đổi dữ liệu
một cách dễ dàng và hiệu quả.

Matplotlib: Matplotlib là một thư viện trực quan hóa mạnh mẽ cho Python. Nó
cho phép tạo ra đồ thị, biểu đồ, sơ đồ, và hình ảnh chất lượng cao để trực quan hóa
dữ liệu.
Seaborn: Seaborn là một thư viện trực quan hóa dựa trên Matplotlib, nó cung
cấp các chủ đề và phong cách trực quan hóa đẹp mắt và dễ sử dụng hơn. Seaborn hỗ
trợ trực quan hóa dữ liệu thống kê, biểu đồ phân phối, và mối quan hệ giữa các biến.
Scikit-learn: Scikit-learn là một thư viện machine learning phổ biến và mạnh
mẽ. Nó cung cấp các công cụ cho huấn luyện và đánh giá mơ hình machine learning,
tiền xử lý dữ liệu, trích xuất đặc trưng, và các thuật toán phân loại, hồi quy, phân
cụm, và học sâu.

2.7. REST API
2.7.1. REST API là gì?
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng
web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào
tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao
gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP.
Các thành phần của nó
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà
theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành

10


phần khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những
kiểu dữ liệu phổ biến như JSON hay XML.
REST (REpresentational State** T**ransfer) là một dạng chuyển đổi cấu trúc
dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để
tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một
số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE,

vv đến một URL để xử lý dữ liệu.
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng
dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API
được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau
giao tiếp với nhau.
Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP
method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng
dụng web để quản các resource. RESTful không quy định logic code ứng dụng và
không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngơn ngữ hoặc framework
nào cũng có thể sử dụng để thiết kế một RESTful API.
2.7.2. REST API hoạt động như thế nào?
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu
trên sẽ sử dụng những phương thức HTTP riêng.
 GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
 POST (CREATE): Tạo mới một Resource.
 PUT (UPDATE): Cập nhật thơng tin cho Resource.
 DELETE (DELETE): Xố một Resource.
Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng
với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.Hiện tại đa số lập trình viên
11


viết RESTful API giờ đây đều chọn JSON là format chính thức nhưng cũng có nhiều
người chọn XML làm format, nói chung dùng thế nào cũng được miễn tiện và nhanh.
2.7.3. Status code
Khi chúng ta request một API nào đó thường thì sẽ có vài status code để nhận
biết sau:
200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc
DELETE.
 201 Created – Trả về khi một Resouce vừa được tạo thành công.

 204 No Content – Trả về khi Resource xố thành cơng.
 304 Not Modified – Client có thể sử dụng dữ liệu cache.
 400 Bad Request – Request không hợp lệ
 401 Unauthorized – Request cần có auth.
 403 Forbidden – bị từ chối khơng cho phép.
 404 Not Found – Khơng tìm thấy resource từ URI
 405 Method Not Allowed – Phương thức không cho phép với user hiện
tại.
 410 Gone – Resource khơng cịn tồn tại, Version cũ đã khơng cịn hỗ trợ.
 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này.
 422 Unprocessable Entity – Dữ liệu không được xác thực
 429 Too Many Requests – Request bị từ chối do bị giới hạn
Trong Ruby on Rails có thể sử dụng symbol status code hoặc 3 chữ số integer
2.7.4. Ưu điểm của REST API
Một số ưu điểm chính khi sử dụng RESTFUL API là:
 Giúp cho ứng dụng rõ ràng hơn
12


 REST URL đại diện cho resource chứ không phải hành động
 Dữ liệu được trả về với nhiều định dạng khác nhau như: xml, html,
json….
 Code đơn giản và ngắn gọn
 REST chú trọng vào tài nguyên của hệ thống
Những trang web ngày nay thường sử dụng REST API để cho phép kết nối đến
dữ liệu của họ. Trong đó, facebook cũng cung cấp các REST API để giúp các ứng
dụng bên ngoài kết nối đến dữ liệu của họ

13



CHƯƠNG 3. KẾT QUẢ ĐẠT ĐƯỢC VÀ QUÁ TRÌNH LÀM VIỆC
3.1. Crawl dữ liệu web
3.1.1. Batdongsan.com.vn

a. Khó khăn:
Web sử dụng JS để render web, việc sử dụng các công cụ như Scrapy sẽ khơng
crawl được do dữ liệu khơng có
Web sử dụng CloudFare để chặn nhiều request 1 lúc
Dữ liệu khơng đồng nhất, có trường dữ liệu có, có trường khơng có
Gía nhà ở khơng thực tế, nhiều dữ liệu nhiễu do mô giới dùng để tăng tương
tác
b. Thuận lợi:
- Selenium có option sử dụng trình duyệt ẩn danh để request tới website
- Dữ liệu đa dạng cập nhật thời gian thực
c. Qúa trình crawl dữ liệu
- Sử dụng selenium để có thể crawl được website render bằng Js
- Lấy các trường thông tin bằng cách selector theo Xpath
14


- Cho selenium auto crawl hết 100 page, đẩy dữ liệu vào database chờ xử lí

15


16


Data sau khi crawl xong:


17


3.1.2. Chotot.com
Sử dụng BeatifulSoup và Python Request để Crawl dữ liệu

18


Dữ liệu thô sau Crawl

19


3.2. Trực quan hóa dữ liệu crawl từ trang Chotot.vn
Thơng tin thu nhập được:

Vấn đề: Ở đây dữ liệu thiếu khá nhiều, và sẽ có một số cột khơng ảnh hưởng
đến output giá chung cư nên sẽ phải tiền xử lý, trực quan hố các cột dữ liệu để tìm
ra dữ liệu nào được giữ lại để xây dựng cho quá trình traning (tiền xử lý và EDA dữ
liệu sẽ được trình bày bên dưới)

3.3. Phân tích chi tiết
Do em sử dụng Jupyter notebook nên em xin phép chụp ảnh ạ
20


21



22


×