Asked Nov 4th, 2018 3:17 AM 193 0 3
  • 193 0 3
+2

Crawl Website

Share
  • 193 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!

Truong Dang @xdangminhtruongx
Nov 4th, 2018 11:44 AM

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 😭😭😭

+1
| Reply
Share
Long @lelong
Nov 5th, 2018 2:40 AM

@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 ạ

0
| Reply
Share
Nov 5th, 2018 7:52 AM

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

0
| Reply
Share

3 ANSWERS


Answered Nov 6th, 2018 4:02 AM
+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. 😜😛😝

Share
Long @lelong
Nov 9th, 2018 6:41 AM

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

0
| Reply
Share
Answered Nov 12th, 2018 4:45 PM
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')
Share
Answered Dec 18th, 2018 9:05 AM
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

Share