Yêu cầu thg 11 4, 2018 3:17 SA 613 0 3
  • 613 0 3
+2

Crawl Website

Chia sẻ
  • 613 0 3

Xin chào mọi người, Em hiện tại đang có khó khăn về crawl website mong anh chị có thể giúp em ạ. Vấn đề: Em đang muốn dùng API đề lấy toàn bộ source code của một trang web về gồm cả html,css.... Em dùng RoR đề làm việc này. Anh chị có cách nào đề giải quyết vấn đề này không ạ. Em xin cảm ơn!

Avatar Truong Dang @xdangminhtruongx
thg 11 4, 2018 11:44 SA

Mình hay dùng... httrack để crawl giao diện kiểu này😭😭😭. Nếu không bị bắt buộc phải tự viết bằng rails thì bạn dùng nó thử xem sao 😭😭😭

Avatar Long @lelong
thg 11 5, 2018 2:40 SA

@xdangminhtruongx Cảm ơn bạn, cái này bắt buộc phải code chứ không dùng tool bạn ạ

thg 11 5, 2018 7:52 SA

@lelong hóng ké với, chưa thấy crawl source code như thế này baoh!

3 CÂU TRẢ LỜI


Đã trả lời thg 11 6, 2018 4:02 SA
+1

Lấy source code của website về là điều không thể nếu source code là private. Bạn chỉ có thể lưu lại html, css, image về tham khảo giao diện mà thôi. ha ha ha. 😜😛😝

Chia sẻ
Avatar Long @lelong
thg 11 9, 2018 6:41 SA

😄 ý em là lấy source html css js thôi ạ

Đã trả lời thg 11 12, 2018 4:45 CH
0

Theo mình có 2 cách:

  • Cách nhanh nhất: Sử dụng 1 thư viện nào đó để tự động hoá tool clone sẵn có. Trong đó httrack rất nổi tiếng trong việc clone website 😁 vd: gem install win32-autogui
  • Cách chậm hơn chút: Gửi từng request để lấy hết dữ liệu về.
    Ví dụ websiteA.com
  1. Gửi request tới websiteA/index để lấy nội dung html đầu tiên
  2. Lưu hết asset của nó về (js, css, img). Replace asset links trong html nếu cần thiết
  3. Lưu html đã chỉnh sửa vào file
  4. Parse hết thẻ <a> trong html đó và làm lại bước 1 😂
  5. Xong hết tất cả thì ném kết quả qua Rail để làm API thôi ✌️

Ví dụ gửi request lấy nội dung:

require 'net/http'
source = Net::HTTP.get('viblo.asia', '/q/crawl-website-QqKLQ0ArZ7z')
Chia sẻ
Đã trả lời thg 12 18, 2018 9:05 SA
0

Bạn thử cho API execute 1 command line được không

wget --recursive --domains example.com --no-parent http://example.com/vector/

command trên sẽ lấy tất cả html, css, image, font của website và xếp vào đúng cấu trúc của nó source sau khi lấy về có thể chạy được bình thường trên trình duyệt (đôi khi cần đổi tên file của những file font lại vì tên file của font bị lỗi) nếu bạn cần hiểu thêm về parameters của wget thì có thể xem ở web của mình

Chia sẻ
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí