Skip to content

thieu1995/job

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Tích hợp và xử lý dữ liệu lớn

  • Đề bài: Thu thập, tích hợp, và xử lý dữ liệu về việc làm từ các trang web tuyển dụng. Hệ thống có thể cập nhật dữ liệu định kỳ một cách tự động, dựa trên cấu hình được thiết lập
  • Yêu cầu: Tối thiểu 5 nguồn khác nhau

Hướng làm

  1. Tìm các trang web sẽ sử dụng
  2. Thu thập dữ liệu
  3. Tiền xử lý dữ liệu (tích hợp) sau đó lưu vào database
  4. Lập trang web hiển thị thông tin dữ liệu trong database
  5. Viết cấu hình code cập nhật thu thập dữ liệu theo ngày.

Các trang web sử dụng

https://careerbuilder.vn/

https://www.jobstreet.vn/

https://www.timviecnhanh.com/

https://mywork.com.vn/

https://www.careerlink.vn/

https://topdev.vn/it-jobs

https://itviec.com/

https://vieclam24h.vn/
  • Các trang còn lại số lượng truy cập ít và cũng ít job đăng tuyển hoặc có thể là không crawl dữ liệu về được vì nó sử dụng các framework như React, Angular ,... hoặc đơn giản là dùng javascript để chặn việc lấy link.

Thu thập dữ liệu

  • Mỗi trang web đều có riêng 1 spider để crawl
  • Khi crawl 1 website thì chỉ crawl thông tin về job, các thông tin khác không quan tâm
  • Không lưu thông tin chi tiết về công ty tuyển dụng

Thứ tự thực hiện các trang

  1. Careerbuilder
  • Được xây dựng spider model đầu tiên
  • Có 2 trường có thể xuất hiện hoặc không: experience và tags
  • Link ở các thẻ đều có dạng đầy đủ nên dùng: scrapy.Request()
  1. Mywork
  • Xây dựng thứ 2
  • Trang này thì lại không có trường: tags, thay vào đó có thêm trường: entitlements (lợi ích)
  • Link ở các thẻ đều có dạng không đầy đủ nên dùng: response.follow()
  1. Careerlink
  • Xây dựng thứ 3
  • Ngược với cái thứ 2, trang này lại có trường: tags, và không có trường: entitlements (lợi ích)
  • Link ở các thẻ đều có dạng không đầy đủ nên dùng: response.follow()
  1. Jobsgo
  • Xay dung thu 4
  • Trang này không có other_information và tags nhưng lại có entitlements
  1. https://timviec365.vn
  • Xay dung thu 5

Chua lam

https://tuyencongnhan.vn https://1001vieclam.com/

  1. Timviecnhanh
  • Xay dung thu 6
  • Trang nay van con nhieu loi va kha la it bai
  1. Vieclam Tuoitre
  • Xay dung thu 4
  • Giong y nguyen trang 1 (careerbuilder)
  1. Itviec
  • Xây dựng thứ 4
  • Điều đặc biệt ở trang này là nó là trang về IT nên rất ít job
  • Link ở các thẻ đều có dạng không đầy đủ nên dùng: response.follow(), nhưng link ở trang pagination thì nó lại ở dạng không đầy đủ nên dùng: scrapy.Request()
  • Do không hiển thị thông tin : lương (đăng nhập thì hiển thị) nên không dùng trang này nữa.
  1. https://www.jobstreet.vn/
  • Trang này khá là shit vì nó không có cấu trúc cố định, có lẫn tiếng anh và việt crawl hơi khó
  • Bài viết thì không chi tiết, không phân mục rõ ràng như mấy trang bên trên.
  • Do vậy bỏ, không làm trang này

Hướng dẫn chạy

1. Liệt kê toàn bộ các spider (các trang web sẽ crawl) có sẵn 
    scrapy list
    
2. Crawl 1 trang website ví dụ:
    scrapy crawl name_website -o name_file.json 
(name_website nam tren cai : scrapy list, name_file: ten file dau` ra)
    scrapy crawl careerbuilder -o careerbuilder.json

Create database


create database jobweb character set UTF8 collate utf8_bin;
use jobweb

CREATE TABLE job (
  stt INT NOT NULL AUTO_INCREMENT,
  source varchar(100),
  source_url varchar(500),
  import_datetime datetime,
  job_title VARCHAR(500),
  company_title VARCHAR(500),
  updated_date VARCHAR(100),
  work_location VARCHAR(500),
  category VARCHAR(500),
  salary VARCHAR(100),
  level VARCHAR(100),
  deadline VARCHAR(100),
  experience VARCHAR(500),
  job_description TEXT,
  job_requirement TEXT,
  other_information TEXT,
  tags VARCHAR(500),
  PRIMARY KEY (stt)
)
AUTO_INCREMENT = 1;

https://stackoverflow.com/questions/16566268/remove-all-line-breaks-from-a-long-string-of-text/16566356

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages