2012-02-13 40 views
28

Tôi đang tìm các đề xuất cho một chương trình để cạo và tải xuống toàn bộ trang web của công ty.Cạo Toàn bộ Trang web

Trang web được hỗ trợ bởi một CMS ngừng hoạt động và cố định nó là tốn kém và chúng tôi có thể phát triển lại trang web.

Vì vậy, tôi muốn chỉ tải toàn bộ trang web dưới dạng nội dung html/css/hình ảnh đơn giản và thực hiện cập nhật nhỏ cho đến khi trang web mới xuất hiện.

Bất kỳ đề xuất nào?

Trả lời

19

Cân nhắc HTTrack. Đó là tiện ích trình duyệt ngoại tuyến miễn phí và dễ sử dụng.

Nó cho phép bạn tải xuống một trang web toàn cầu từ Internet vào thư mục cục bộ, xây dựng đệ quy tất cả các thư mục, nhận HTML, hình ảnh và các tệp khác từ máy chủ đến máy tính của bạn.

+0

Điều này hoàn hảo cho tôi và dễ dàng hơn tùy chọn dòng lệnh. –

47
wget \ 
    --recursive \ 
    --no-clobber \ 
    --page-requisites \ 
    --html-extension \ 
    --convert-links \ 
    --restrict-file-names=windows \ 
    --domains website.org \ 
    --no-parent \ 
     www.website.com 

Đọc thêm về nó here.

+1

wget không thích 'convert-links' và' no-clobber' được sử dụng cùng nhau. Nó sẽ bỏ qua 'no-clobber' trong trường hợp đó. – BryanH

+1

Nếu bạn muốn xóa một trang web có thẻ HTML5 chẳng hạn như âm thanh hoặc video, bạn phải sử dụng phiên bản mới nhất của wget. Hỗ trợ cho những người đã được thêm vào đôi khi trong 2012-2013. Tôi vừa biên soạn bản mới nhất từ ​​bản repo Git của họ và nó có trang web tôi cần, hoàn chỉnh với các tệp video. –

+2

Nên '--domains' có cùng một đối số như tên của trang web để được cạo (trong trường hợp này là' website.com', không phải '.org')? – user151841

0

Cách tốt nhất là xóa nó với wget như được đề xuất trong câu trả lời của @Abhijeet Rastogi. Nếu bạn không quen thuộc với thì Blackwidow là một scraper khá. Tôi đã sử dụng nó trong quá khứ. http://www.sbl.net/

2

wget -r --no-parent http://www.website.com

@shadyabhi 's trả lời duy nhất cho tôi index.html

28

Không có ở trên có chính xác những gì tôi cần thiết (toàn bộ trang web và toàn bộ tài sản). Điều này làm việc mặc dù.

Trước tiên, hãy làm theo this hướng dẫn để sử dụng OSX.

Sau đó chạy này

wget --recursive --html-extension --page-requisites --convert-links http://website.com 
+2

Thêm - không-cha mẹ nếu bạn chỉ muốn từ một url và tên miền phụ của nó – magnudae

+0

Hãy chắc chắn rằng bạn bao gồm www. nếu trang web buộc www. nếu không nó sẽ không tải xuống bất cứ thứ gì. –

12

Tôi biết đây là siêu cũ và tôi chỉ muốn đưa 2 cent của tôi trong

wget -m -k -K -E -l 7 -t 6 -w 5 http://www.website.com

Một làm rõ chút về mỗi thiết bị chuyển mạch:.

-m Về cơ bản, điều này có nghĩa là "phản chiếu trang web" và nó đệ quy lấy các trang & hình ảnh khi nó lướt qua trang web. Nó kiểm tra dấu thời gian, vì vậy nếu bạn chạy wget một lần thứ 2 với công tắc này, nó sẽ chỉ cập nhật các tệp/trang mới hơn thời gian trước đó.

-k Điều này sẽ sửa đổi các liên kết trong html để trỏ đến tệp cục bộ. Nếu thay vì sử dụng những thứ như page2.html làm liên kết trên toàn bộ trang web của bạn, bạn thực sự đang sử dụng đầy đủ http://www.website.com/page2.html có thể bạn sẽ cần/muốn điều này. Tôi bật nó lên để được ở bên an toàn - rất có thể ít nhất 1 liên kết sẽ gây ra sự cố khác.

-K Tùy chọn ở trên (chữ thường k) chỉnh sửa html. Nếu bạn muốn phiên bản "không bị ảnh hưởng", hãy sử dụng công tắc này và nó sẽ lưu cả phiên bản đã thay đổi lẫn bản gốc. Nó chỉ là thực hành tốt trong trường hợp một cái gì đó là awry và bạn muốn so sánh cả hai phiên bản.Bạn luôn có thể xóa địa chỉ mà bạn không muốn sau này.

-E Điều này tiết kiệm HTML & CSS có "phần mở rộng thích hợp". Cẩn thận với điều này - nếu trang web của bạn không có phần mở rộng .html trên mỗi trang, điều này sẽ thêm nó. Tuy nhiên, nếu trang web của bạn đã có mọi tệp được đặt tên giống như ".htm", bạn sẽ kết thúc bằng ".htm.html".

-l 7 Theo mặc định, -m chúng tôi đã sử dụng ở trên sẽ recurse/spider thông qua toàn bộ trang web. Thường thì được rồi. Nhưng đôi khi trang web của bạn sẽ có một vòng lặp vô hạn trong đó trường hợp wget sẽ tải xuống mãi mãi. Hãy nghĩ về ví dụ điển hình của website.com/products/jellybeans/sort-by-/name/price/name/price/name/price. Hiện nay phần lớn là hiếm - hầu hết các trang web hoạt động tốt và sẽ không làm điều này, nhưng để an toàn, hãy tìm ra số lần nhấp nhiều nhất có thể để truy cập bất kỳ trang nào từ trang chính để truy cập bất kỳ trang thực nào trên trang web, trang nó một chút (nó sẽ hút nếu bạn sử dụng một giá trị của 7 và phát hiện ra một giờ sau đó trang web của bạn là 8 cấp độ sâu!) và sử dụng #. Tất nhiên, nếu bạn biết trang web của bạn có cấu trúc sẽ hoạt động, không có gì sai khi bỏ qua điều này và có được sự thoải mái khi biết rằng trang ẩn 1 trên trang web của bạn thực sự đã tìm thấy 50 cấp độ.

-t 6 Nếu cố gắng truy cập/tải xuống một trang hoặc tệp nhất định không thành công, điều này sẽ đặt số lần thử lại trước khi từ bỏ tệp đó và tiếp tục. Bạn thường muốn nó đến cuối cùng là bỏ cuộc (đặt thành 0 nếu bạn muốn thử mãi mãi), nhưng bạn cũng không muốn từ bỏ nếu trang web này chỉ đang trong một hoặc hai giây. Tôi thấy 6 là hợp lý.

-w 5 Điều này yêu cầu bạn phải đợi một vài giây (5 giây trong trường hợp này) trước khi lấy tệp tiếp theo. Thường là điều quan trọng để sử dụng một cái gì đó ở đây (ít nhất là 1 giây). Hãy để tôi giải thích. Theo mặc định, wget sẽ lấy các trang nhanh nhất có thể. Điều này có thể dễ dàng là nhiều yêu cầu mỗi giây có tiềm năng đặt tải lớn trên máy chủ (đặc biệt nếu trang web được viết bằng PHP, làm cho MySQL truy cập trên mỗi yêu cầu và không sử dụng bộ nhớ cache). Nếu trang web trên lưu trữ được chia sẻ, tải đó có thể khiến ai đó khởi động máy chủ của họ. Ngay cả trên một VPS nó có thể mang lại một số trang web đến đầu gối của họ. Và ngay cả khi bản thân trang web vẫn còn tồn tại, bị bắn phá với số lượng yêu cầu điên rồ trong vòng vài giây có thể trông giống như một cuộc tấn công DOS có thể giúp bạn tự động chặn IP của mình. Nếu bạn không biết chắc chắn rằng trang web có thể xử lý một lượng lớn lưu lượng truy cập, hãy sử dụng -w # switch.5 thường khá an toàn. Thậm chí 1 có lẽ là ok hầu hết thời gian. Nhưng sử dụng một cái gì đó.

+0

Cảm ơn tất cả các giải thích, câu trả lời tuyệt vời! – mdomino

Các vấn đề liên quan