Cách lấy dữ liệu từ nhiều website về page?

Thông não giúp em cách lấy dữ liệu từ nhiều website về page của mình với.
#Java nhé

Khá lâu rồi mình cũng từng làm crawl Amazon và mình thiết kế theo kiểu này:

Untitled%20Diagram

  1. Để crawl được thì bạn phải có website URL, có thê generate hoặc tạo ra bằng cách nào đó. Các URL sẽ được đẩy vào 1 URL Queue (Java thì có thể dùng ArrayBlockingQueue)
  2. Nhiều crawler sẽ thay nhau lấy URL từ trong Queue ra
  3. Mỗi crawler sẽ thực hiện HTTP request để lấy được nội dung website ở dạng HTML
  4. Mỗi crawler sau khi có được HTML rồi thì parse để lấy thông tin cần thiết và lưu vào database

Ưu điểm nếu thiết kế theo cách này thì rất dễ mở rộng và crawl cũng nhanh
Nhược điểm thì nhìn có vẻ hơi cồng kềnh, nhưng thực ra triển khai cũng nhanh lắm.

4 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?