Trên thực tế đó, có rất nhiều ứng dụng và website tìm việc nên để giảm thiểu thời gian công sức và tăng hiệu suất làm tìm việc làm ta cần có một ứng dụng thu thập tổng hợp dữ liệu việc l
Trang 1──────── * ───────
BÁO CÁO
MÔN: ĐỒ ÁN TIN HỌC
Phát triển ứng dụng thu thập dữ liệu tuyển
dụng về ngành công nghệ thông tin
Sinh viên thực hiện : Lê Đức Đăng
Giáo viên hướng dẫn : Nguyễn Mạnh Tuấn
Trang 2Hà Nội, tháng 12 năm 2019
2
Trang 3MỤC LỤC
MỤC LỤC 2
LỜI NÓI ĐẦU 3
CHƯƠNG 1 KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN 4
1.1 Mô tả yêu cầu bài toán 4
1.2 Biểu đồ use case 4
1.2.1 Biểu đồ use case tổng quan 4
1.3 Đặc tả use case 4
CHƯƠNG 2 CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG 6
XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA 6
2.1 Kết quả chương trình minh họa 6
2.2 Giao diện chương trình 10
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 11
TÀI LIỆU THAM KHẢO 12
PHỤ LỤC 13
Trang 4LỜI NÓI ĐẦU
Với tình hình tìm việc hiện nay đang trở nên ngày càng thiết thực sau mùa dịch
mà thời gian càng ngày càng ít Trên thực tế đó, có rất nhiều ứng dụng và website tìm việc nên để giảm thiểu thời gian công sức và tăng hiệu suất làm tìm việc làm ta cần có một ứng dụng thu thập tổng hợp dữ liệu việc làm để hỗ trợ cho khả năng tìm việc
Hiện đã có một số ứng dụng đã được các lập trình viên viết ra để đáp ứng nhu cầu này Và ứng dụng sau đây của em thực hiện cũng nhằm giải quyết một số vấn đề
về thu thập dữ liệu việc làm
4
Trang 5CHƯƠNG 1 KHẢO SÁT, ĐẶC TẢ YÊU CẦU BÀI TOÁN
1.1 Mô tả yêu cầu bài toán
Bài toán nghiên cứu và làm một ứng dụng thu thập dữ liệu trên website việc làm: https://careerbuilder.vn/vi ở mục tìm việc làm “CNTT- phần mềm” Sau đó xuất thông tin cần ra màn hình hoặc xuất ra file csv
1.2 Biểu đồ use case
1.2.1 Biểu đồ use case tổng quan
1.3 Đặc tả use case
Tên Use Case Đọc thông tin
Mô tả Use-case cho phép người dùng đọc thông tin cần tìm kiếm
Trang 6Điều kiện kích hoạt Khi người dung chọn nút “search” trên màn hình
Tiền điều kiện Người dung phải khởi động phần mềm
Hậu điều kiện Thông tin được xuất hiện trên màn hình
Luồng sự kiến chính 1.Hệ thống hiện thị phần mềm
2.Người dùng nhập những thông tin cần tìm kiếm 3.Hệ thống tìm kiếm thông tin trong dữ liệu 4.Nếu thành công hệ thống xuất thông tin trên màn hình
5 kết thúc Use-case Luồng sự kiện phụ Khi không tìm được thông tin cần sẽ hiện ra “Print box” dòng
chữ “Not found”
6
Trang 7CHƯƠNG 2 CÔNG NGHỆ VÀ THUẬT TOÁN SỬ DỤNG XÂY DỰNG CHƯƠNG TRÌNH MINH HỌA
2.1 Kết quả chương trình minh họa
Đầu tiên, Import các thư viện cần thiết cho bài toán
Tiếp theo em nhận thấy trang web mình cần craw chỉ cần thay đổi số trong {} là có thể chuyển đến page khác Mục CNTT- phần mềm có 49 page Nên em cho chạy một vòng lặp từ 1 đến 50 để lấy được đường link của 49 page
Trang 8Dùng Qtdesign em design được ứng dụng “app” Sau đó đưa giao diện này vào python được code như sau:
8
Trang 9Sau đó em thêm dòng lệnh: “clicked=lambda:self.search_it())” vào dòng 44 :
self.search_button=QtWidgets.QPushButton(self.groupBox,clicked=lambda:self.search_it())
để khi ấn vào nút search trên màn hình sẽ đưa tới hàm “search_it()”
Tương tự với các nút “delete data” và “print data”
self.delete_button = QtWidgets.QPushButton(self.groupBox,clicked=lambda:self.delete_it()) self.print_button = QtWidgets.QPushButton(self.groupBox,clicked=lambda:self.print_it())
Chạy hàm search_it(): đầu tiên em lấy dữ liệu trong từng link đã lấy được ở đầu bài Sau đó lấy từng dữ liệu ở tường việc bao gồm tên công việc: “job name”, tên công ty:
“company name”, lương: “salary”, địa chỉ: “location”, link đường dẫn đến công việc
cụ thể: “ More infor” Sau khi lấy được thông tin thì gán vào “str1” và “str2” Với
“str1” dùng để xuất ra file csv và “str2” dùng để in ra màn hình “app”
Hàm delete_it() dùng để xóa mọi thông tin đã in ra trên màn hình
Trang 10Hàm print_it() dùng để xuất thông tin đã tìm kiếm được trên màn hình ra file csv Để thông tin sau mỗi lần in ra nhiều file khác nhau thì em dùng biến “self.i” đã được khai báo ở đầu class để xuất ra các file csv khác nhau sau mỗi lần in ra csv bằng cách tăng biến self.i lên mỗi đơn vị
Những dòng lệnh cuối cùng để hiển thị tên gọi và chạy được giao diện phần mêm
10
Trang 112.2 Giao diện chương trình
Phần mềm của em có 3 chức năng chính:
_Tìm kiếm thông tin việc làm theo 3 danh mục chính “job name”, “company name”,
“location” bằng cách nhập thông tin tìm kiếm vào 3 text rồi khởi động bằng ấn nút search”
_ Xóa thông tin ở “Print box” để thực hiện thêm lần tìm kiếm khác
_ Xuất thông tin ra file csv nếu cảm thấy thông tin cần in là cần thiết
Trang 12KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
1) Nội dung lý thuyết được củng cố:
_ Kỹ năng sử dụng python được củng cố
_ Kỹ năng sử dụng Microsoft Office Word
2) Các kỹ năng học được:
_ Học được cách sử dụng phần mềm design Qtdesign và thư viện Qtpy5, cách crawl một web đơn giản
_ Học được cách viết báo cáo một phần mềm
_ Học được kỹ năng tự học làm một phần mềm đơn giản qua nhiều kênh thông tin như sách vở, youtube, bạn bè và thầy cô
3) Những kinh nghiệm thực tiễn học hỏi được:
_ Tập trung nhiều thời gian hơn cho việc tìm hiểu thu thập thông tin
_Chọn lựa hướng phân tích
4) Hướng phát triển:
_ Tiếp tục thực hiện và phát triển các chức năng mở rộng còn thiếu
_ Xây dựng chương trình có thể thực thi trên nhiều hệ điều hành
5) Các phần chưa làm được :
_ Giao diện than thiện với ngườ làm
_ Tối ưu code, chương trình ngắn gọn dễ đọc hiểu hơn
12
Trang 13TÀI LIỆU THAM KHẢO
[1] Python cơ bản - Võ Tuấn Duy
[2] Automate the Boring Stuff with Python-Al Sweigart-2017
[3] Learning Python 5th Edition-Mark Lutz-2013
[4] https://howkteam.vn/learn/lap-trinh/lap-trinh-python-7-37- Hướng dẫn python cơ bản
[5]https://www.youtube.com/watch?
v=XVv6mJpFOb0&fbclid=IwAR2LW6Uuq1RhpI47UH0vmt8R8BtDbrYyIqpEpbj6Y R2HYMdd3GnKY1h40Pc- Hướng dẫn crawl data 1 web cơ bản
[6]https://www.youtube.com/watch?
v=rZcdhles6vQ&list=PLCC34OHNcOtpmCA8s_dpPMvQLyHbvxocY – Hướng dẫn tạo một giao diện phần mềm đơn giản trên Qtdesigner
Trang 14PHỤ LỤC
Hướng dẫn cài đặt và sử dụng chương trình Qtdesigner và thư viện Pyqt5:
http://www.laptrinhtanbinh.com/course/1/Lap-trinh-voi-ngon-ngu-C/25/3.1.-Gioi-thieu-ve-thu-vien-Qt
https://www.vniteach.com/2022/01/24/lap-trinh-giao-dien-python-voi-pyqt5-va-qt-designer/
14