Làm cho wget chuyển đổi các liên kết HTML thành tương đối sau khi tải xuống nếu -k không được chỉ định


32

Các -ktùy chọn (hoặc --convert-link) sẽ chuyển đổi các liên kết trong trang web của bạn để người thân sau khi tải xuống hoàn tất, chẳng hạn như trang người đàn ông nói:

Sau khi tải xuống hoàn tất, chuyển đổi các liên kết trong tài liệu để làm cho chúng phù hợp để xem cục bộ. Điều này ảnh hưởng đến không chỉ các siêu liên kết có thể nhìn thấy, mà bất kỳ phần nào của tài liệu liên kết đến nội dung bên ngoài, chẳng hạn như hình ảnh được nhúng, liên kết đến biểu định kiểu, siêu liên kết đến nội dung không phải HTML, v.v.

Vì vậy, nếu tôi không chỉ định -k, tôi có thể chạy wgetlại sau khi tải xuống và sửa lỗi đó không, và nếu vậy, lệnh nào sẽ là đúng? Tôi đoán là wget -c [previous options used] [url]và chạy nó trong cùng thư mục làm việc với tập tin đã được tải xuống.


1
bạn chắc chắn có thể xử lý hậu kỳ các tập tin sau khi tải xuống, nhưng tôi không biết nếu wgetlàm điều này. ý tưởng của bạn về việc thử nó -clà một ý tưởng tốt. Thời gian để thử nghiệm!
quack quixote

Có một tiện ích tiện dụng để chuyển đổi các liên kết, trong bất kỳ cơ hội? Nhân tiện, chạy trên Windows ...
Nathaniel

perl... không có kịch bản được viết sẵn, nhưng nếu tôi muốn một giải pháp DIY đó là những gì tôi sẽ sử dụng
quack quixote

Được rồi, cảm ơn. Đừng cài đặt Perl và sẽ mất quá nhiều thời gian để lấy nó. May mắn thay, tôi tìm thấy làm thế nào để làm cho wget làm công việc. Tôi đã đăng một câu trả lời.
Nathaniel

btw, ActivePerl là một cổng perl port; đó là một trình cài đặt khá nhỏ và tôi khá chắc chắn rằng hầu hết các mô-đun CPAN đều hoạt động với nó. activestate.com/activeperl
quack quixote

Câu trả lời:


23

Vâng, bạn có thể làm wgetđiều đó. Tôi muốn nói sử dụng wget -nc -k [previous options] [previous url]. -nclà không có clobber. Từ trang người đàn ông:

Khi −ncđược chỉ định, hành vi này sẽ bị loại bỏ và Wget sẽ từ chối tải xuống các bản sao mới hơn.

Và các -ktùy chọn không chuyển đổi liên kết. Vì vậy, wget bắt đầu đào trong máy chủ từ xa, xem tất cả các tệp bạn đã có, từ chối tải xuống lại và sau đó chỉnh sửa các liên kết HTML thành tương đối khi hoàn thành. Tốt đẹp.


3
Không, điều này không làm việc cho tôi. Anh ta tải xuống tệp đầu tiên (ví dụ index.html), xem đó là tất cả đã tải xuống một điểm dừng. Nếu bạn muốn wget làm việc đệ quy, bạn phải sử dụng tùy chọn dấu thời gian (-K). Vì vậy, wget phải yêu cầu tất cả các tiêu đề phù hợp nếu tệp mới hơn hoặc không.

12
GNU Wget 1.13.3 được xây dựng trên darwin11.1.0. Cố gắng sử dụng cả hai tùy chọn cùng một lúcBoth --no-clobber and --convert-links were specified,only --convert-links will be used.
Ludovic Kuty

2
không phải câu hỏi của bạn yêu cầu mà không có -k?
barlop

8
Cf. Nhận xét của @ LudovicKuty - như wget 1.13 --no-clobberkhông hoạt động --convert-links. Xem http://savannah.gnu.org/bugs/?31781 để biết chi tiết.
David Moles

1
Trong trường hợp bất cứ ai quan tâm, tôi đã xây dựng một hình ảnh docker
berezovskyi
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.