Mặc dù hữu ích, các câu trả lời trước không thể chính xác, đáng tin cậy và lặp lại giải quyết câu hỏi cơ bản. Trong bài đăng này, chúng tôi chi tiết ngắn gọn những khó khăn với từng và sau đó đưa ra một httrack
giải pháp dựa trên cơ sở khiêm tốn .
Lý lịch
Tuy nhiên, trước khi chúng ta đạt được điều đó, hãy xem xét phản hồi bằng văn bản của mpy . Trong h [là | er] bài đăng bị bỏ quên một cách đáng buồn, mpy tài liệu nghiêm ngặt về sơ đồ lưu trữ tối nghĩa của Wayback Machine (và trung thực che giấu).
Không có gì đáng ngạc nhiên, nó không đẹp. Thay vì hoàn toàn lưu trữ các trang web vào một thư mục, Máy Wayback sẽ lan truyền một trang web duy nhất trên hai hoặc nhiều thư mục anh chị em được xác định bằng số. Nếu nói rằng sự phản chiếu phức tạp này sẽ là một cách đánh giá thấp.
Hiểu những cạm bẫy khủng khiếp được trình bày bởi chương trình này là cốt lõi để hiểu được sự bất cập của các giải pháp trước đây. Chúng ta hãy tiếp tục với nó, phải không?
Giải pháp trước 1: wget
Câu hỏi liên quan đến StackOverflow "Phục hồi trang web cũ khỏi waybackmachine" có lẽ là người phạm tội tồi tệ nhất trong vấn đề này, khuyến nghị wget
cho phản chiếu Wayback. Đương nhiên, khuyến nghị đó về cơ bản là không có cơ sở.
Trong trường hợp không viết lại URL bên ngoài phức tạp (ví dụ Privoxy
:), wget
không thể sử dụng để phản chiếu các trang web lưu trữ Wayback đáng tin cậy. Như chi tiết mpy trong "Vấn đề 2 + Giải pháp", bất kỳ công cụ phản chiếu nào bạn chọn phải cho phép bạn không tải xuống quá mức chỉ các URL thuộc về trang đích. Theo mặc định, hầu hết các công cụ phản chiếu tải xuống liên tục tất cả các URL thuộc cả trang đích và trang được liên kết từ trang đó - trong trường hợp xấu nhất có nghĩa là "toàn bộ Internet".
Một ví dụ cụ thể là theo thứ tự. Khi phản chiếu tên miền mẫu kearescue.com
, công cụ phản chiếu của bạn phải :
- Bao gồm tất cả các URL phù hợp
https://web.archive.org/web/*/http://kearescue.com
. Đây là những tài sản được cung cấp bởi trang đích (ví dụ https://web.archive.org/web/20140521010450js_/http_/kearescue.com/media/system/js/core.js
:).
- Loại trừ tất cả các URL khác. Đây là những tài sản được cung cấp bởi các trang web khác chỉ được liên kết đến từ trang đích (ví dụ
https://web.archive.org/web/20140517180436js_/https_/connect.facebook.net/en_US/all.js
:).
Không loại trừ các URL như vậy thường kéo theo tất cả hoặc hầu hết Internet được lưu trữ tại thời điểm trang web được lưu trữ, đặc biệt đối với các trang web nhúng các tài sản được lưu trữ bên ngoài (ví dụ: video YouTube).
Điều đó sẽ rất tệ. Mặc dù wget
không cung cấp --exclude-directories
tùy chọn dòng lệnh chấp nhận một hoặc nhiều mẫu phù hợp với các URL được loại trừ, đây không phải là các biểu thức thông thường có mục đích chung; chúng là các khối đơn giản có *
cú pháp khớp với 0 hoặc nhiều ký tự loại trừ/
. Vì các URL được loại trừ chứa nhiều /
ký tự tùy ý , wget
không thể được sử dụng để loại trừ các URL này và do đó không thể được sử dụng để phản chiếu các trang web lưu trữ Wayback. Giai đoạn = Stage. Kết thúc câu chuyện đáng tiếc.
Vấn đề này đã được ghi nhận trong hồ sơ công khai kể từ ít nhất năm 2009. Nó vẫn chưa được giải quyết. Kế tiếp!
Giải pháp trước 2: Sổ lưu niệm
Prinz khuyến nghị ScrapBook
, một plugin Firefox. Một plugin Firefox.
Đó có lẽ là tất cả những gì bạn cần biết. Trong khi ScrapBook
's Filter by String...
chức năng làm địa chỉ nói trên 'Vấn đề 2 + Giải pháp', nó không giải quyết tiếp theo 'Vấn đề 3 + Giải pháp' - cụ thể là, vấn đề của các bản sao không liên quan.
Đó là câu hỏi liệu ScrapBook
thậm chí giải quyết thỏa đáng vấn đề trước đây. Như mpy thừa nhận:
Mặc dù Sổ lưu niệm thất bại cho đến nay để lấy hoàn toàn trang web ...
Các giải pháp không đáng tin cậy và quá đơn giản là các giải pháp không. Kế tiếp!
Giải pháp trước 3: wget + Privoxy
mpy sau đó cung cấp một giải pháp mạnh mẽ tận dụng cả wget
và Privoxy
. Trong khi hợp lý wget
là đơn giản để cấu hình, Privoxy
là bất cứ điều gì nhưng hợp lý. Hoặc đơn giản.
Do những trở ngại kỹ thuật không thể tin được của việc cài đặt, định cấu hình và sử dụng đúng cách Privoxy
, chúng tôi vẫn chưa xác nhận giải pháp của mpy . Nó nên hoạt động một cách có thể mở rộng, mạnh mẽ. Với các rào cản gia nhập, giải pháp này có lẽ phù hợp với tự động hóa quy mô lớn hơn so với quản trị trang web trung bình đang cố gắng khôi phục các trang web quy mô nhỏ đến trung bình.
Là wget
+ Privoxy
đáng xem? Chắc chắn rồi. Nhưng hầu hết các siêu nhân có thể được phục vụ tốt hơn bằng các giải pháp đơn giản hơn, dễ áp dụng hơn.
Giải pháp mới: omerack
Enter httrack
, một tiện ích dòng lệnh triển khai wget
chức năng phản chiếu của chức năng phản chiếu. httrack
hỗ trợ cả loại trừ URL dựa trên mẫu và tái cấu trúc trang web đơn giản. Các cựu giải quyết "Vấn đề 2 + Giải pháp" của mpy ; cái sau, "Bài toán 3 + Giải pháp."
Trong ví dụ trừu tượng dưới đây, thay thế:
${wayback_url}
bằng URL của thư mục cấp cao nhất lưu trữ toàn bộ trang web mục tiêu của bạn (ví dụ 'https://web.archive.org/web/20140517175612/http://kearescue.com'
:).
${domain_name}
bởi cùng một tên miền có mặt trong việc ${wayback_url}
loại trừ tiền tố http://
(ví dụ 'kearescue.com'
:).
Chúng ta đi đây. Cài đặt httrack
, mở cửa sổ terminal, cd
vào thư mục cục bộ mà bạn muốn tải xuống trang web của mình và chạy lệnh sau:
httrack\
${wayback_url}\
'-*'\
'+*/${domain_name}/*'\
-N1005\
--advanced-progressinfo\
--can-go-up-and-down\
--display\
--keep-alive\
--mirror\
--robots=0\
--user-agent='Mozilla/5.0 (X11;U; Linux i686; en-GB; rv:1.9.1) Gecko/20090624 Ubuntu/9.04 (jaunty) Firefox/3.5'\
--verbose
Khi hoàn thành, thư mục hiện tại sẽ chứa một thư mục con cho mỗi kiểu tệp được nhân đôi từ URL đó. Điều này thường bao gồm ít nhất:
css
, chứa tất cả các bảng định kiểu CSS được nhân đôi.
html
, chứa tất cả các trang HTML được nhân đôi.
js
, chứa tất cả JavaScript được nhân đôi.
ico
, chứa một favicon nhân đôi.
Vì httrack
bên trong viết lại tất cả nội dung đã tải xuống để phản ánh cấu trúc này, giờ đây trang web của bạn sẽ có thể duyệt được mà không cần sửa đổi. Nếu bạn tạm dừng lệnh trên và muốn tiếp tục tải xuống, hãy thêm --continue
tùy chọn vào cùng một lệnh và thử lại.
Đó là nó. Không có mâu thuẫn bên ngoài, viết lại URL dễ bị lỗi hoặc máy chủ proxy dựa trên quy tắc được yêu cầu.
Thưởng thức, đồng nghiệp siêu nhân.
20110722080716
ảnh chụp nhanh, do đó-np
tùy chọn của wget sẽ không giúp ích.