Crawl Website
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!
3 CÂU TRẢ LỜI
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. 😜😛😝
ý em là lấy source html css js thôi ạ
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
- Gửi request tới websiteA/index để lấy nội dung html đầu tiên
- Lưu hết asset của nó về (js, css, img). Replace asset links trong html nếu cần thiết
- Lưu html đã chỉnh sửa vào file
- Parse hết thẻ <a> trong html đó và làm lại bước 1
- 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')
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
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 😭😭😭
@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 ạ
@lelong hóng ké với, chưa thấy crawl source code như thế này baoh!